﻿#VisualFreeBasic_Form#  Version=5.9.7
Locked=0

[Form]
Name=Form1
Help=False
ClassStyle=CS_VREDRAW,CS_HREDRAW,CS_DBLCLKS
ClassName=
WinStyle=WS_CAPTION,WS_SYSMENU,WS_MINIMIZEBOX,WS_MAXIMIZEBOX,WS_CLIPSIBLINGS,WS_CLIPCHILDREN,WS_VISIBLE,WS_EX_WINDOWEDGE,WS_EX_CONTROLPARENT,WS_EX_LEFT,WS_EX_LTRREADING,WS_EX_RIGHTSCROLLBAR,WS_POPUP,WS_SIZEBOX
Style=3 - 常规窗口
Icon=
Caption=矢量图标编辑器
StartPosition=1 - 屏幕中心
WindowState=0 - 正常
Enabled=True
Repeat=False
Left=0
Top=0
Width=808
Height=585
TopMost=False
Child=False
MdiChild=False
TitleBar=True
SizeBox=True
SysMenu=True
MaximizeBox=True
MinimizeBox=True
Help=False
Hscroll=False
Vscroll=False
MinWidth=808
MinHeight=585
MaxWidth=0
MaxHeight=0
NoActivate=False
MousePass=False
TransPer=0
TransColor=SYS,25
Shadow=0 - 无阴影
BackColor=SYS,15
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[Button]
Name=Command1
Help=
Index=-1
Caption=列表
TextAlign=1 - 居中
Ico=
Enabled=True
Visible=True
Default=False
OwnDraw=False
MultiLine=False
Font=微软雅黑,9,0
Left=73
Top=28
Width=42
Height=23
Layout=0 - 不锚定
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[CheckBox]
Name=Check5
Help=
Index=3
Style=0 - 标准
Caption=删除线
TextAlign=3 - 中左对齐
Alignment=0 - 文本在左边
Value=0 - 未选择
Multiline=True
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,25
Font=微软雅黑,9,0
Left=325
Top=485
Width=90
Height=25
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[CheckBox]
Name=Check5
Help=
Index=1
Style=0 - 标准
Caption=斜体
TextAlign=3 - 中左对齐
Alignment=0 - 文本在左边
Value=0 - 未选择
Multiline=True
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,25
Font=微软雅黑,9,0
Left=325
Top=465
Width=90
Height=25
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[YFtext]
Name=YFtext6
Help=
Index=2
Presets=0 - 控件预设选择
Text=1
TipText=在这里输入内容
LText=尺寸=
RText=
LvIco=
RvIco=
Enabled=True
Visible=True
MaxLength=0
PasswordChar=
Locked=False
HideSelection=True
Number=True
Frame=True
UpDown=True
UpMax=500
UpMin=5
LSpace=45
RSpace=0
ZColor=RGB(0,0,0)
TColor=RGB(180,180,180)
LColor=RGB(0,115,229)
RColor=RGB(204,0,0)
DColor=SYS,15
ZDColor=RGB(255,255,255)
kColor=RGB(105,105,105)
jColor=RGB(0,85,255)
Font=微软雅黑,9,0
Left=235
Top=440
Width=101
Height=24
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[YFtext]
Name=YFtext10
Help=
Index=-1
Presets=0 - 控件预设选择
Text=
TipText=在这里输入内容
LText=文字
RText=
LvIco=
RvIco=
Enabled=True
Visible=True
MaxLength=0
PasswordChar=
Locked=False
HideSelection=True
Number=False
Frame=True
UpDown=False
UpMax=100
UpMin=0
LSpace=30
RSpace=0
ZColor=RGB(0,0,0)
TColor=RGB(180,180,180)
LColor=RGB(0,115,229)
RColor=RGB(204,0,0)
DColor=SYS,15
ZDColor=RGB(255,255,255)
kColor=RGB(105,105,105)
jColor=RGB(0,85,255)
Font=微软雅黑,9,0
Left=235
Top=415
Width=195
Height=25
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[Picture]
Name=Picture1
Help=
Index=-1
Style=1 - 细边框
Enabled=True
Visible=True
Left=230
Top=35
Width=300
Height=300
Layout=5 - 宽度和高度
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[YFtext]
Name=YFtext2
Help=
Index=-1
Presets=0 - 控件预设选择
Text=
TipText=这里可以直接输入vico字符，立即生效
LText=VICO字符：
RText=复制
LvIco=
RvIco=
Enabled=True
Visible=True
MaxLength=0
PasswordChar=
Locked=False
HideSelection=True
Number=False
Frame=True
UpDown=False
UpMax=100
UpMin=0
LSpace=60
RSpace=25
ZColor=RGB(0,0,0)
TColor=RGB(180,180,180)
LColor=RGB(0,115,229)
RColor=RGB(0,204,0)
DColor=SYS,15
ZDColor=RGB(255,255,255)
kColor=RGB(105,105,105)
jColor=RGB(0,85,255)
Font=微软雅黑,9,0
Left=5
Top=515
Width=784
Height=29
Layout=8 - 底部和宽度
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[YFList]
Name=YFList2
Help=
Index=-1
Enabled=True
Visible=True
ForeColor=&H000000
BackColor=&HFFFFFF
MoveColor=&HFFE5CC
SelFore=&HFFFFFF
SelBack=&HE57300
ScrollFore=&H878787
ScrollBack=&HE1E1E1
ScrollMove=&H4B4B4B
LinesColor=&HA5A5A5
FrameColor=RGB(90,90,90)
FocusColor=SYS,25
ItemHeight=80
Check=False
GridLines=False
Font=微软雅黑,9,0
VicoSize=16
Left=675
Top=80
Width=114
Height=409
Layout=6 - 右边和高度
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[YFList]
Name=YFList1
Help=
Index=-1
Enabled=True
Visible=True
ForeColor=&H000000
BackColor=&HFFFFFF
MoveColor=&HFFE5CC
SelFore=&HFFFFFF
SelBack=&HE57300
ScrollFore=&H878787
ScrollBack=&HE1E1E1
ScrollMove=&H4B4B4B
LinesColor=&HA5A5A5
FrameColor=RGB(90,90,90)
FocusColor=SYS,25
ItemHeight=80
Check=False
GridLines=True
Font=微软雅黑,9,0
VicoSize=16
Left=5
Top=79
Width=109
Height=229
Layout=4 - 调整高度
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[Frame]
Name=Frame1
Help=
Index=-1
Caption=位置和大小
Frame=False
TextAlign=0 - 左对齐
Fillet=5
BorderWidth=1
BorderColor=SYS,16
ForeColor=SYS,8
BackColor=SYS,25
Enabled=True
Visible=True
Font=微软雅黑,9,0
Left=445
Top=340
Width=94
Height=169
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
ToolTip=
ToolTipBalloon=False

[YFtext]
Name=YFtext1
Help=
Index=0
Presets=0 - 控件预设选择
Text=0
TipText=在这里输入内容
LText=X=
RText=
LvIco=
RvIco=
Enabled=True
Visible=True
MaxLength=0
PasswordChar=
Locked=False
HideSelection=True
Number=True
Frame=True
UpDown=True
UpMax=2000
UpMin=-1000
LSpace=25
RSpace=0
ZColor=RGB(0,0,0)
TColor=RGB(180,180,180)
LColor=RGB(0,115,229)
RColor=RGB(204,0,0)
DColor=SYS,15
ZDColor=RGB(255,255,255)
kColor=RGB(105,105,105)
jColor=RGB(0,85,255)
Font=微软雅黑,9,0
Left=448
Top=358
Width=91
Height=24
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[YFtext]
Name=YFtext1
Help=
Index=1
Presets=0 - 控件预设选择
Text=0
TipText=在这里输入内容
LText=Y=
RText=
LvIco=
RvIco=
Enabled=True
Visible=True
MaxLength=0
PasswordChar=
Locked=False
HideSelection=True
Number=True
Frame=True
UpDown=True
UpMax=2000
UpMin=-1000
LSpace=25
RSpace=0
ZColor=RGB(0,0,0)
TColor=RGB(180,180,180)
LColor=RGB(0,115,229)
RColor=RGB(204,0,0)
DColor=SYS,15
ZDColor=RGB(255,255,255)
kColor=RGB(105,105,105)
jColor=RGB(0,85,255)
Font=微软雅黑,9,0
Left=448
Top=383
Width=91
Height=24
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[YFtext]
Name=YFtext1
Help=
Index=2
Presets=0 - 控件预设选择
Text=0
TipText=在这里输入内容
LText=W=
RText=
LvIco=
RvIco=
Enabled=True
Visible=True
MaxLength=0
PasswordChar=
Locked=False
HideSelection=True
Number=True
Frame=True
UpDown=True
UpMax=1000
UpMin=-1000
LSpace=25
RSpace=0
ZColor=RGB(0,0,0)
TColor=RGB(180,180,180)
LColor=RGB(0,115,229)
RColor=RGB(204,0,0)
DColor=SYS,15
ZDColor=RGB(255,255,255)
kColor=RGB(105,105,105)
jColor=RGB(0,85,255)
Font=微软雅黑,9,0
Left=448
Top=408
Width=91
Height=24
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[YFtext]
Name=YFtext1
Help=
Index=3
Presets=0 - 控件预设选择
Text=0
TipText=在这里输入内容
LText=H=
RText=
LvIco=
RvIco=
Enabled=True
Visible=True
MaxLength=0
PasswordChar=
Locked=False
HideSelection=True
Number=True
Frame=True
UpDown=True
UpMax=1000
UpMin=-1000
LSpace=25
RSpace=0
ZColor=RGB(0,0,0)
TColor=RGB(180,180,180)
LColor=RGB(0,115,229)
RColor=RGB(204,0,0)
DColor=SYS,15
ZDColor=RGB(255,255,255)
kColor=RGB(105,105,105)
jColor=RGB(0,85,255)
Font=微软雅黑,9,0
Left=448
Top=433
Width=91
Height=24
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[YFtext]
Name=YFtext3
Help=
Index=0
Presets=0 - 控件预设选择
Text=0
TipText=
LText=填充色
RText=
LvIco=
RvIco=
Enabled=True
Visible=True
MaxLength=0
PasswordChar=
Locked=False
HideSelection=True
Number=True
Frame=True
UpDown=True
UpMax=16
UpMin=0
LSpace=45
RSpace=0
ZColor=RGB(0,0,0)
TColor=RGB(180,180,180)
LColor=RGB(0,115,229)
RColor=RGB(204,0,0)
DColor=SYS,15
ZDColor=RGB(255,255,255)
kColor=RGB(105,105,105)
jColor=RGB(0,85,255)
Font=微软雅黑,9,0
Left=213
Top=360
Width=99
Height=24
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[YFList]
Name=YFList3
Help=
Index=-1
Enabled=True
Visible=True
ForeColor=&H000000
BackColor=&HFFFFFF
MoveColor=&HFFE5CC
SelFore=&HFFFFFF
SelBack=&HE57300
ScrollFore=&H878787
ScrollBack=&HE1E1E1
ScrollMove=&H4B4B4B
LinesColor=&HA5A5A5
FrameColor=RGB(90,90,90)
FocusColor=SYS,25
ItemHeight=25
Check=False
GridLines=False
Font=微软雅黑,9,0
VicoSize=16
Left=555
Top=80
Width=114
Height=129
Layout=2 - 跟随右边
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[YFtext]
Name=YFtext7
Help=
Index=-1
Presets=0 - 控件预设选择
Text=
TipText=查找图标
LText=
RText=
LvIco=
RvIco=c01TdTmTg^[^[+a.41UU03.5caci_^_w+c200XcX`VbVb
Enabled=True
Visible=True
MaxLength=0
PasswordChar=
Locked=False
HideSelection=True
Number=False
Frame=True
UpDown=False
UpMax=100
UpMin=0
LSpace=0
RSpace=20
ZColor=RGB(0,0,0)
TColor=RGB(180,180,180)
LColor=RGB(0,115,229)
RColor=RGB(204,0,0)
DColor=SYS,15
ZDColor=RGB(255,255,255)
kColor=RGB(105,105,105)
jColor=RGB(0,85,255)
Font=微软雅黑,9,0
Left=4
Top=50
Width=112
Height=27
Layout=0 - 不锚定
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[Label]
Name=Label1
Help=
Index=-1
Style=0 - 无边框
Caption=图标列表
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,25
Font=微软雅黑,9,0
FontWidth=0
FontAngle=0
TextAlign=0 - 左对齐
Prefix=True
Ellipsis=False
Left=9
Top=33
Width=94
Height=20
Layout=0 - 不锚定
MousePointer=0 - 默认
Tag=
ToolTip=
ToolTipBalloon=False

[YFtext]
Name=YFtext9
Help=
Index=-1
Presets=0 - 控件预设选择
Text=
TipText=在这里输入内容
LText=图标名称
RText=
LvIco=
RvIco=
Enabled=True
Visible=True
MaxLength=0
PasswordChar=
Locked=False
HideSelection=True
Number=False
Frame=True
UpDown=False
UpMax=100
UpMin=0
LSpace=50
RSpace=0
ZColor=RGB(0,0,0)
TColor=RGB(180,180,180)
LColor=RGB(0,115,229)
RColor=RGB(204,0,0)
DColor=SYS,15
ZDColor=RGB(255,255,255)
kColor=RGB(105,105,105)
jColor=RGB(0,85,255)
Font=微软雅黑,9,0
Left=554
Top=30
Width=240
Height=29
Layout=2 - 跟随右边
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[Label]
Name=Label2
Help=
Index=-1
Style=0 - 无边框
Caption=颜色列表(双击修改)
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,25
Font=微软雅黑,9,0
FontWidth=0
FontAngle=0
TextAlign=0 - 左对齐
Prefix=True
Ellipsis=False
Left=555
Top=60
Width=114
Height=20
Layout=2 - 跟随右边
MousePointer=0 - 默认
Tag=
ToolTip=
ToolTipBalloon=False

[CheckBox]
Name=Check3
Help=
Index=-1
Style=0 - 标准
Caption=显示
TextAlign=3 - 中左对齐
Alignment=0 - 文本在左边
Value=0 - 未选择
Multiline=True
Enabled=False
Visible=True
ForeColor=SYS,8
BackColor=SYS,25
Font=微软雅黑,9,0
Left=745
Top=60
Width=50
Height=15
Layout=2 - 跟随右边
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[Label]
Name=Label3
Help=
Index=-1
Style=0 - 无边框
Caption=图元素列表
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,25
Font=微软雅黑,9,0
FontWidth=0
FontAngle=0
TextAlign=0 - 左对齐
Prefix=True
Ellipsis=False
Left=675
Top=60
Width=95
Height=20
Layout=2 - 跟随右边
MousePointer=0 - 默认
Tag=
ToolTip=
ToolTipBalloon=False

[ComboBox]
Name=Combo3
Help=
Index=-1
Style=0 - 标签和下拉框
Custom=<Sel>折线拐角:尖角|0|折线拐角:斜角|0|折线拐角:圆形|0
OwnDraw=0 - 系统绘制
LabelHeight=20
ItemHeight=18
HasString=False
Sorted=False
NoHeight=False
AutoHscroll=True
MaxLength=0
Uppercase=False
Lowercase=False
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,5
Font=微软雅黑,9,0
Left=93
Top=483
Width=98
Height=22
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[Frame]
Name=Frame2
Help=
Index=-1
Caption=线框
Frame=False
TextAlign=0 - 左对齐
Fillet=5
BorderWidth=1
BorderColor=SYS,16
ForeColor=SYS,8
BackColor=SYS,25
Enabled=True
Visible=True
Font=微软雅黑,9,0
Left=5
Top=340
Width=189
Height=169
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
ToolTip=
ToolTipBalloon=False

[YFtext]
Name=YFtext3
Help=
Index=1
Presets=0 - 控件预设选择
Text=0
TipText=
LText=线框色
RText=
LvIco=
RvIco=
Enabled=True
Visible=True
MaxLength=0
PasswordChar=
Locked=False
HideSelection=True
Number=True
Frame=True
UpDown=True
UpMax=16
UpMin=0
LSpace=40
RSpace=0
ZColor=RGB(0,0,0)
TColor=RGB(180,180,180)
LColor=RGB(0,115,229)
RColor=RGB(204,0,0)
DColor=SYS,15
ZDColor=RGB(255,255,255)
kColor=RGB(105,105,105)
jColor=RGB(0,85,255)
Font=微软雅黑,9,0
Left=10
Top=360
Width=90
Height=24
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[YFtext]
Name=YFtext4
Help=
Index=-1
Presets=0 - 控件预设选择
Text=1
TipText=在这里输入内容
LText=线粗
RText=
LvIco=
RvIco=
Enabled=True
Visible=True
MaxLength=0
PasswordChar=
Locked=False
HideSelection=True
Number=True
Frame=True
UpDown=True
UpMax=1000
UpMin=0
LSpace=30
RSpace=0
ZColor=RGB(0,0,0)
TColor=RGB(180,180,180)
LColor=RGB(0,115,229)
RColor=RGB(204,0,0)
DColor=SYS,15
ZDColor=RGB(255,255,255)
kColor=RGB(105,105,105)
jColor=RGB(0,85,255)
Font=微软雅黑,9,0
Left=103
Top=360
Width=90
Height=24
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[CheckBox]
Name=Check1
Help=
Index=0
Style=0 - 标准
Caption=圆角左上
TextAlign=3 - 中左对齐
Alignment=0 - 文本在左边
Value=0 - 未选择
Multiline=True
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,25
Font=微软雅黑,9,0
Left=340
Top=415
Width=80
Height=20
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[CheckBox]
Name=Check1
Help=
Index=1
Style=0 - 标准
Caption=圆角左下
TextAlign=3 - 中左对齐
Alignment=0 - 文本在左边
Value=0 - 未选择
Multiline=True
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,25
Font=微软雅黑,9,0
Left=340
Top=435
Width=80
Height=20
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[CheckBox]
Name=Check1
Help=
Index=2
Style=0 - 标准
Caption=圆角右上
TextAlign=3 - 中左对齐
Alignment=0 - 文本在左边
Value=0 - 未选择
Multiline=True
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,25
Font=微软雅黑,9,0
Left=340
Top=455
Width=80
Height=20
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[CheckBox]
Name=Check1
Help=
Index=3
Style=0 - 标准
Caption=圆角右下
TextAlign=3 - 中左对齐
Alignment=0 - 文本在左边
Value=0 - 未选择
Multiline=True
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,25
Font=微软雅黑,9,0
Left=340
Top=475
Width=80
Height=20
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[Label]
Name=Label4
Help=
Index=0
Style=0 - 无边框
Caption=对象列表
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,25
Font=微软雅黑,9,0
FontWidth=0
FontAngle=0
TextAlign=0 - 左对齐
Prefix=True
Ellipsis=False
Left=560
Top=235
Width=95
Height=20
Layout=2 - 跟随右边
MousePointer=0 - 默认
Tag=
ToolTip=
ToolTipBalloon=False

[YFList]
Name=YFList4
Help=
Index=-1
Enabled=True
Visible=True
ForeColor=&H000000
BackColor=&HFFFFFF
MoveColor=&HFFE5CC
SelFore=&HFFFFFF
SelBack=&HE57300
ScrollFore=&H878787
ScrollBack=&HE1E1E1
ScrollMove=&H4B4B4B
LinesColor=&HA5A5A5
FrameColor=RGB(90,90,90)
FocusColor=&HFF1A1A
ItemHeight=20
Check=False
GridLines=False
Font=微软雅黑,9,0
VicoSize=16
Left=555
Top=255
Width=114
Height=234
Layout=6 - 右边和高度
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[ComboBox]
Name=Combo1
Help=
Index=0
Style=0 - 标签和下拉框
Custom=<Sel>平底形|0|正方形|0|半圆形|0|三角形|0
OwnDraw=0 - 系统绘制
LabelHeight=20
ItemHeight=18
HasString=False
Sorted=False
NoHeight=False
AutoHscroll=True
MaxLength=0
Uppercase=False
Lowercase=False
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,5
Font=微软雅黑,9,0
Left=15
Top=405
Width=80
Height=22
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[ComboBox]
Name=Combo1
Help=
Index=1
Style=0 - 标签和下拉框
Custom=<Sel>平底形|0|正方形|0|半圆形|0|三角形|0
OwnDraw=0 - 系统绘制
LabelHeight=20
ItemHeight=18
HasString=False
Sorted=False
NoHeight=False
AutoHscroll=True
MaxLength=0
Uppercase=False
Lowercase=False
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,5
Font=微软雅黑,9,0
Left=105
Top=405
Width=80
Height=22
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[Label]
Name=Label5
Help=
Index=0
Style=0 - 无边框
Caption=起点线帽
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,25
Font=微软雅黑,9,0
FontWidth=0
FontAngle=0
TextAlign=0 - 左对齐
Prefix=True
Ellipsis=False
Left=10
Top=385
Width=60
Height=20
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
ToolTip=
ToolTipBalloon=False

[Label]
Name=Label5
Help=
Index=1
Style=0 - 无边框
Caption=终点线帽
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,25
Font=微软雅黑,9,0
FontWidth=0
FontAngle=0
TextAlign=0 - 左对齐
Prefix=True
Ellipsis=False
Left=140
Top=385
Width=60
Height=20
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
ToolTip=
ToolTipBalloon=False

[YFtext]
Name=YFtext5
Help=
Index=0
Presets=0 - 控件预设选择
Text=1
TipText=在这里输入内容
LText=箭W
RText=
LvIco=
RvIco=
Enabled=True
Visible=True
MaxLength=0
PasswordChar=
Locked=False
HideSelection=True
Number=True
Frame=True
UpDown=True
UpMax=500
UpMin=0
LSpace=30
RSpace=0
ZColor=RGB(0,0,0)
TColor=RGB(180,180,180)
LColor=RGB(0,115,229)
RColor=RGB(204,0,0)
DColor=SYS,15
ZDColor=RGB(255,255,255)
kColor=RGB(105,105,105)
jColor=RGB(0,85,255)
Font=微软雅黑,9,0
Left=10
Top=430
Width=90
Height=24
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[YFtext]
Name=YFtext5
Help=
Index=1
Presets=0 - 控件预设选择
Text=1
TipText=在这里输入内容
LText=箭H
RText=
LvIco=
RvIco=
Enabled=True
Visible=True
MaxLength=0
PasswordChar=
Locked=False
HideSelection=True
Number=True
Frame=True
UpDown=True
UpMax=500
UpMin=0
LSpace=30
RSpace=0
ZColor=RGB(0,0,0)
TColor=RGB(180,180,180)
LColor=RGB(0,115,229)
RColor=RGB(204,0,0)
DColor=SYS,15
ZDColor=RGB(255,255,255)
kColor=RGB(105,105,105)
jColor=RGB(0,85,255)
Font=微软雅黑,9,0
Left=10
Top=455
Width=90
Height=24
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[YFtext]
Name=YFtext5
Help=
Index=2
Presets=0 - 控件预设选择
Text=1
TipText=在这里输入内容
LText=箭W
RText=
LvIco=
RvIco=
Enabled=True
Visible=True
MaxLength=0
PasswordChar=
Locked=False
HideSelection=True
Number=True
Frame=True
UpDown=True
UpMax=500
UpMin=0
LSpace=30
RSpace=0
ZColor=RGB(0,0,0)
TColor=RGB(180,180,180)
LColor=RGB(0,115,229)
RColor=RGB(204,0,0)
DColor=SYS,15
ZDColor=RGB(255,255,255)
kColor=RGB(105,105,105)
jColor=RGB(0,85,255)
Font=微软雅黑,9,0
Left=103
Top=430
Width=90
Height=24
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[YFtext]
Name=YFtext5
Help=
Index=3
Presets=0 - 控件预设选择
Text=1
TipText=在这里输入内容
LText=箭H
RText=
LvIco=
RvIco=
Enabled=True
Visible=True
MaxLength=0
PasswordChar=
Locked=False
HideSelection=True
Number=True
Frame=True
UpDown=True
UpMax=500
UpMin=0
LSpace=30
RSpace=0
ZColor=RGB(0,0,0)
TColor=RGB(180,180,180)
LColor=RGB(0,115,229)
RColor=RGB(204,0,0)
DColor=SYS,15
ZDColor=RGB(255,255,255)
kColor=RGB(105,105,105)
jColor=RGB(0,85,255)
Font=微软雅黑,9,0
Left=103
Top=455
Width=90
Height=24
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[CheckBox]
Name=Check2
Help=
Index=-1
Style=0 - 标准
Caption=填充箭头
TextAlign=3 - 中左对齐
Alignment=0 - 文本在左边
Value=0 - 未选择
Multiline=True
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,25
Font=微软雅黑,9,0
Left=65
Top=385
Width=74
Height=20
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[ComboBox]
Name=Combo2
Help=
Index=-1
Style=0 - 标签和下拉框
Custom=<Sel>交叉重叠留空|0|交叉重叠填充|0
OwnDraw=0 - 系统绘制
LabelHeight=20
ItemHeight=18
HasString=False
Sorted=False
NoHeight=False
AutoHscroll=True
MaxLength=0
Uppercase=False
Lowercase=False
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,5
Font=微软雅黑,9,0
Left=215
Top=400
Width=94
Height=22
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[CheckBox]
Name=Check4
Help=
Index=-1
Style=0 - 标准
Caption=封闭路径
TextAlign=3 - 中左对齐
Alignment=0 - 文本在左边
Value=0 - 未选择
Multiline=True
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,25
Font=微软雅黑,9,0
Left=215
Top=430
Width=100
Height=24
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[Frame]
Name=Frame3
Help=
Index=-1
Caption=填充
Frame=False
TextAlign=0 - 左对齐
Fillet=5
BorderWidth=1
BorderColor=SYS,16
ForeColor=SYS,8
BackColor=SYS,25
Enabled=True
Visible=True
Font=微软雅黑,9,0
Left=205
Top=340
Width=114
Height=169
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
ToolTip=
ToolTipBalloon=False

[Label]
Name=Label5
Help=
Index=2
Style=0 - 无边框
Caption=填充模式
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,25
Font=微软雅黑,9,0
FontWidth=0
FontAngle=0
TextAlign=0 - 左对齐
Prefix=True
Ellipsis=False
Left=225
Top=385
Width=60
Height=20
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
ToolTip=
ToolTipBalloon=False

[Frame]
Name=Frame4
Help=
Index=-1
Caption=矩形圆角
Frame=False
TextAlign=0 - 左对齐
Fillet=5
BorderWidth=1
BorderColor=SYS,16
ForeColor=SYS,8
BackColor=SYS,25
Enabled=True
Visible=True
Font=微软雅黑,9,0
Left=330
Top=340
Width=104
Height=169
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
ToolTip=
ToolTipBalloon=False

[YFtext]
Name=YFtext6
Help=
Index=0
Presets=0 - 控件预设选择
Text=1
TipText=在这里输入内容
LText=圆角W=
RText=
LvIco=
RvIco=
Enabled=True
Visible=True
MaxLength=0
PasswordChar=
Locked=False
HideSelection=True
Number=True
Frame=True
UpDown=True
UpMax=100
UpMin=0
LSpace=45
RSpace=0
ZColor=RGB(0,0,0)
TColor=RGB(180,180,180)
LColor=RGB(0,115,229)
RColor=RGB(204,0,0)
DColor=SYS,15
ZDColor=RGB(255,255,255)
kColor=RGB(105,105,105)
jColor=RGB(0,85,255)
Font=微软雅黑,9,0
Left=332
Top=360
Width=101
Height=24
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[YFtext]
Name=YFtext6
Help=
Index=1
Presets=0 - 控件预设选择
Text=1
TipText=在这里输入内容
LText=圆角H=
RText=
LvIco=
RvIco=
Enabled=True
Visible=True
MaxLength=0
PasswordChar=
Locked=False
HideSelection=True
Number=True
Frame=True
UpDown=True
UpMax=100
UpMin=0
LSpace=45
RSpace=0
ZColor=RGB(0,0,0)
TColor=RGB(180,180,180)
LColor=RGB(0,115,229)
RColor=RGB(204,0,0)
DColor=SYS,15
ZDColor=RGB(255,255,255)
kColor=RGB(105,105,105)
jColor=RGB(0,85,255)
Font=微软雅黑,9,0
Left=332
Top=385
Width=100
Height=24
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[YFbunGroup]
Name=YFbunGroup4
Help=
Index=-1
Style=0 - 无边框
BunStyle=0 - 水平
BunSizeW=-1
BunSizeH=-1
BunForm=1 - 框线
BunCircular=0
Button=Form2_YFbunGroup4_Button_向上上000-1-1-1-1-1-1-1-1-1Form2_YFbunGroup4_Button_向下下000-1-1-1-1-1-1-1-1-1Form2_YFbunGroup4_Button_删除删000-1-1-1-1-1-1-1-1-1Form2_YFbunGroup4_Button_增加增加000-1-1-1-1-1-1-1-1-1
Enabled=True
Visible=True
ForeColor=SYS,18
BackColor=SYS,15
ColorSel=SYS,13
ColorSelTxt=SYS,14
ColorMove=SYS,16
Font=微软雅黑,9,0
IcoSize=16
Spaces=5
Left=550
Top=495
Width=120
Height=20
Layout=9 - 右边和底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[YFbunGroup]
Name=YFbunGroup2
Help=
Index=-1
Style=0 - 无边框
BunStyle=0 - 水平
BunSizeW=-1
BunSizeH=-1
BunForm=1 - 框线
BunCircular=0
Button=Form2_YFbunGroup2_Button_向上上000-1-1-1-1-1-1-1-1-1Form2_YFbunGroup2_Button_向下下000-1-1-1-1-1-1-1-1-1Form2_YFbunGroup2_Button_删除删000-1-1-1-1-1-1-1-1-1Form2_YFbunGroup2_Button_增加增加000-1-1-1-1-1-1-1-1-1
Enabled=True
Visible=True
ForeColor=SYS,18
BackColor=SYS,15
ColorSel=SYS,13
ColorSelTxt=SYS,14
ColorMove=SYS,16
Font=微软雅黑,9,0
IcoSize=16
Spaces=5
Left=674
Top=494
Width=120
Height=20
Layout=9 - 右边和底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[YFbunGroup]
Name=YFbunGroup1
Help=
Index=-1
Style=0 - 无边框
BunStyle=0 - 水平
BunSizeW=-1
BunSizeH=-1
BunForm=1 - 框线
BunCircular=0
Button=Form2_YFbunGroup1_Button_向上上000-1-1-1-1-1-1-1-1-1Form2_YFbunGroup1_Button_向下下000-1-1-1-1-1-1-1-1-1Form2_YFbunGroup1_Button_删除删000-1-1-1-1-1-1-1-1-1Form2_YFbunGroup1_Button_增加增加000-1-1-1-1-1-1-1-1-1
Enabled=True
Visible=True
ForeColor=SYS,18
BackColor=SYS,15
ColorSel=SYS,13
ColorSelTxt=SYS,14
ColorMove=SYS,16
Font=微软雅黑,9,0
IcoSize=16
Spaces=5
Left=1
Top=315
Width=114
Height=20
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[PopupMenu]
Name=PopupMenu1
Help=
Index=-1
Menu=复制Form1_PopupMenu1_复制0-10剪切Form1_PopupMenu1_剪切0-10粘贴Form1_PopupMenu1_粘贴0-10删除Form1_PopupMenu1_删除0-10新增Form1_PopupMenu1_新增0-10{线条 \ 不规则多边形Form1_PopupMenu1_线条0-10曲线Form1_PopupMenu1_曲线0-10矩形Form1_PopupMenu1_矩形0-10椭圆Form1_PopupMenu1_椭圆0-10圆弧 \ 馅饼Form1_PopupMenu1_圆弧0-10多边形Form1_PopupMenu1_多边形0-10贝塞尔曲线Form1_PopupMenu1_贝塞尔曲线0-10新的路径Form1_PopupMenu1_路径0-10路径：直线Form1_PopupMenu1_路径直线0-10路径：曲线Form1_PopupMenu1_路径曲线0-10路径：贝塞尔Form1_PopupMenu1_路径贝塞尔0-10路径：矩形Form1_PopupMenu1_路径矩形0-10路径：椭圆Form1_PopupMenu1_路径椭圆0-10文字Form1_PopupMenu1_文字0-10-Form1_PopupMenu1_Menu10-10五角星Form1_PopupMenu1_五角星0-10红心Form1_PopupMenu1_红心0-10外五角星Form1_PopupMenu1_外五角星0-10菱形Form1_PopupMenu1_菱形0-10}左右镜像（单个元素）Form1_PopupMenu1_左右镜像单0-10上下镜像（单个元素）Form1_PopupMenu1_上下镜像单0-10
Left=120
Top=640
Tag=

[YFtext]
Name=YFtext1
Help=
Index=4
Presets=0 - 控件预设选择
Text=0
TipText=在这里输入内容
LText=R=
RText=
LvIco=
RvIco=
Enabled=True
Visible=True
MaxLength=0
PasswordChar=
Locked=False
HideSelection=True
Number=True
Frame=True
UpDown=True
UpMax=360
UpMin=-360
LSpace=25
RSpace=0
ZColor=RGB(0,0,0)
TColor=RGB(180,180,180)
LColor=RGB(0,115,229)
RColor=RGB(204,0,0)
DColor=SYS,15
ZDColor=RGB(255,255,255)
kColor=RGB(105,105,105)
jColor=RGB(0,85,255)
Font=微软雅黑,9,0
Left=448
Top=458
Width=91
Height=24
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[YFtext]
Name=YFtext1
Help=
Index=5
Presets=0 - 控件预设选择
Text=0
TipText=在这里输入内容
LText=T=
RText=
LvIco=
RvIco=
Enabled=True
Visible=True
MaxLength=0
PasswordChar=
Locked=False
HideSelection=True
Number=True
Frame=True
UpDown=True
UpMax=360
UpMin=-360
LSpace=25
RSpace=0
ZColor=RGB(0,0,0)
TColor=RGB(180,180,180)
LColor=RGB(0,115,229)
RColor=RGB(204,0,0)
DColor=SYS,15
ZDColor=RGB(255,255,255)
kColor=RGB(105,105,105)
jColor=RGB(0,85,255)
Font=微软雅黑,9,0
Left=448
Top=483
Width=91
Height=24
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[Picture]
Name=Picture2
Help=
Index=-1
Style=0 - 无边框
Enabled=True
Visible=True
Left=150
Top=35
Width=80
Height=300
Layout=0 - 不锚定
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[YFtext]
Name=YFtext8
Help=
Index=-1
Presets=0 - 控件预设选择
Text=
TipText=在这里输入内容
LText=不透明度
RText=
LvIco=
RvIco=
Enabled=True
Visible=True
MaxLength=0
PasswordChar=
Locked=False
HideSelection=True
Number=True
Frame=True
UpDown=True
UpMax=256
UpMin=0
LSpace=50
RSpace=0
ZColor=RGB(0,0,0)
TColor=RGB(180,180,180)
LColor=RGB(0,115,229)
RColor=RGB(204,0,0)
DColor=SYS,15
ZDColor=RGB(255,255,255)
kColor=RGB(105,105,105)
jColor=RGB(0,85,255)
Font=微软雅黑,9,0
Left=555
Top=210
Width=114
Height=24
Layout=2 - 跟随右边
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False

[PopupMenu]
Name=PopupMenu2
Help=
Index=-1
Menu=路径：直线Form1_PopupMenu2_直线0-10路径：曲线Form1_PopupMenu2_曲线0-10路径：贝塞尔Form1_PopupMenu2_贝塞尔0-10路径：矩形Form1_PopupMenu2_矩形0-10路径：椭圆Form1_PopupMenu2_椭圆0-10
Left=195
Top=710
Tag=

[YFswitcher]
Name=YFswitcher1
Help=
Index=-1
Style=0 - 平面圆角1
Enabled=True
Visible=True
Value=False
Note=0 - 内部
NoteON=网格
NoteOFF=网格
ImgON=
ImgOFF=
ForeColor=&H000000
BackColor=&HD2D2D2
NoteONColor=RGB(255,255,255)
NoteOFFColor=&H787878
FillONColor=&HE57300
FillOFFColor=&HF0F0F0
LineONColor=-1
LineOFFColor=&H696969
LumpONColor=&HFFFFFF
LumpOFFColor=&H696969
Left=730
Top=5
Width=54
Height=20
Layout=2 - 跟随右边
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[YFbunGroup]
Name=YFbunGroup5
Help=
Index=-1
Style=0 - 无边框
BunStyle=0 - 水平
BunSizeW=-1
BunSizeH=22
BunForm=0 - 无框
BunCircular=0
Button=Form1_YFbunGroup1_Button_新建新建000ico=a00121Td2200000aic_Vnc_VnUA^FUAaiXd+a*1021Td2200000aiZZ\PZZ\PUA+a*32Td2200000^F^FZZ^F+a*=\P\P\P_s-1-1-1-1-1-1-1-1-1Form1_YFbunGroup1_Button_打开打开000ico=f00001TF2000000_aZV_bZE_cYN_bXl__XT_KXC^fXC]jXC\cWw[fXCZ\XCZnVDYGVFXKVGWgVEVjVHU]VIUPWMUOXGUMYVUM_XUO`mUOaYU_bPWJbNXvbO[vbQ_dbN`UbLaHavaj`nbW_Wbm^ec[]Fco\Lch[VbX[\]q[`[V[YYv[]Xe[`XF\[Wh]NVq_GUVa^VNbK+f2010000000000beZBaqY]aKYL`cXt`tXmaEXiaVXfaBWE_pVG\dUn^rUXa^UobjXKcFXDcQXCccWp-1-1-1-1-1-1-1-1-1Form1_YFbunGroup1_Button_保存保存020ico=h2000000000000VPSJ3XiUU`MYi3]XVB^wYC+h1010000000000`nUU0a_UU0cUWK0cUbd0bncA0VPcA0U_bd0U_VF0VFUU0XFUU0XFZZ0`nZZ3W`\KaSbF-1-1-1-1-1-1-1-1-1Form1_YFbunGroup1_Button_4300-1-1-1-1-1-1-1-1-1Form1_YFbunGroup5_Button_底图截图000ico=b01TZ00?UAUAaiai+c200WAWhW^WZ+g1010000000000TFUM^MZk^a_JZlcZ^gbdcUWecUUKbi-1-1-1-1-1-1-1-1-1Form1_YFbunGroup5_Button_14300-1-1-1-1-1-1-1-1-1Form1_YFbunGroup1_Button_剪切剪切020ico=a00021TZ0000000_vXd_sUAUAUAUAc_Xdc_+h2010000000000]D^Q0\E_M0]``c0^__e0_d`h0aE_M0_w^Q0bA\\1c`ZccGXa0^^\t0YtX`1Y^Zd[C\X4]\]Q_c_P+f00121TP0000000\PbQZKcvXbaiZG`T\I^Z^Q`d\PbQ+f*=bnb\a]cu^qa[`G`CaL^kdP`qbnb\-1-1-1-1-1-1-1-1-1Form1_YFbunGroup1_Button_复制复制020ico=a00001TP0000000^FW_^FUsUiUsUi`PXP`P+a*1102TP0000000YUXdY_bn_ibnas`naiXd+a2010000000000_Ubn_U`Zas`Z+a00002Ss0000000\FZZ`ZZZ+a*=Zd\F`Z\F+a*?]_`Z]_+a*?_A`Z_A+a*>g`n^d`n-1-1-1-1-1-1-1-1-1Form1_YFbunGroup1_Button_粘贴粘贴000ico=a00102TP0000000YUXdY_bn_ibnas`naiXd+a2010000000000_Ubn_U`Zas`Z+a00002Ss0000000\FZZ`ZZZ+a*=Zd\F`Z\F+a*?]_`Z]_+a*?_A`Z_A+a*>g`n^d`n+a1010000000000XFWiXFaiU_aiUAaUUAUsUUUUW_UUW_WK+a*=PUU]AUU]AWA\dWKXnWKXPVn+a*<]sUU_sUU`FUi`FWK]sWL+f00001Ss0000000[jUd[rSpY`SjYcU`-1-1-1-1-1-1-1-1-1Form1_YFbunGroup1_Button_8300-1-1-1-1-1-1-1-1-1Form1_YFbunGroup1_Button_恢复恢复020ico=h1010000000000TZZX0ZFUK0ZFXZ0_UXZ2fiZTcKb]^gbX2cY`Y`B\j^X\l0ZF\n0ZF_s+e2000003VZVeXKUtWe-1-1-1-1-1-1-1-1-1Form1_YFbunGroup1_Button_重做重做020ico=h1010000000000coZi0^ZU^0^ZXn0Y_Xn2TIXoRpaXYebj2Tw`RXP]AZZ\w0^Z]A0^Z`P+e20000030_CXoVEWP-1-1-1-1-1-1-1-1-1Form1_YFbunGroup5_Button_15300-1-1-1-1-1-1-1-1-1Form1_YFbunGroup5_Button_新图新增图元素000ico=a00002TP0000000[L^aai^b+a*=^Z[S^Zam+b01TPSsSs?YiYg\j\s+h00001TP0000000^hXI0^OVI2]wUL\tTT[ZTm0VDVQ2UBVhTVWlTpYK0VW^_2Vf_cW[_iXH_h-1-1-1-1-1-1-1-1-1Form1_YFbunGroup5_Button_16300-1-1-1-1-1-1-1-1-1Form1_YFbunGroup5_Button_关于关于000ico=c01TPTtTqarar+c200\OVsV^V_+f1010000000000Ym[gZZZw[wZR]I[L]v[o]j\Z]Q]P\q]s[Y^w[V_r[R`h\w`R]e`]\XbHYGbMYa_XYj^a[c]O[_\V[\[eZW[_Ym[g-1-1-1-1-1-1-1-1-1
Enabled=True
Visible=True
ForeColor=SYS,18
BackColor=&HD2D2D2
ColorSel=SYS,13
ColorSelTxt=SYS,14
ColorMove=SYS,16
Font=微软雅黑,9,0
IcoSize=20
Spaces=5
Left=0
Top=0
Width=794
Height=29
Layout=1 - 调整宽度
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[CheckBox]
Name=Check5
Help=
Index=0
Style=0 - 标准
Caption=加粗
TextAlign=3 - 中左对齐
Alignment=0 - 文本在左边
Value=0 - 未选择
Multiline=True
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,25
Font=微软雅黑,9,0
Left=235
Top=465
Width=90
Height=25
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[CheckBox]
Name=Check5
Help=
Index=2
Style=0 - 标准
Caption=下划线
TextAlign=3 - 中左对齐
Alignment=0 - 文本在左边
Value=0 - 未选择
Multiline=True
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,25
Font=微软雅黑,9,0
Left=235
Top=485
Width=90
Height=25
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[CheckBox]
Name=Check6
Help=
Index=1
Style=0 - 标准
Caption=首尾相同
TextAlign=3 - 中左对齐
Alignment=0 - 文本在左边
Value=0 - 未选择
Multiline=True
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,25
Font=微软雅黑,9,0
Left=335
Top=465
Width=94
Height=24
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[UpDown]
Name=UpDown1
Help=
Index=0
Style=1 - 在伙伴右边
Buddy=
Horz=False
Setbuddyint=True
Base=0 - 10进制
HotTrack=False
Thousands=False
Wrap=False
Max=2
Min=0
Value=1
Enabled=True
Visible=True
Left=215
Top=470
Width=40
Height=34
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[Label]
Name=Label6
Help=
Index=0
Style=0 - 无边框
Caption=缩放
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,25
Font=微软雅黑,9,0
FontWidth=0
FontAngle=0
TextAlign=0 - 左对齐
Prefix=True
Ellipsis=False
Left=215
Top=455
Width=44
Height=20
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
ToolTip=
ToolTipBalloon=False

[Label]
Name=Label6
Help=
Index=1
Style=0 - 无边框
Caption=旋转
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,25
Font=微软雅黑,9,0
FontWidth=0
FontAngle=0
TextAlign=0 - 左对齐
Prefix=True
Ellipsis=False
Left=266
Top=455
Width=44
Height=20
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
ToolTip=
ToolTipBalloon=False

[UpDown]
Name=UpDown1
Help=
Index=1
Style=1 - 在伙伴右边
Buddy=
Horz=False
Setbuddyint=True
Base=0 - 10进制
HotTrack=False
Thousands=False
Wrap=False
Max=2
Min=0
Value=1
Enabled=True
Visible=True
Left=260
Top=470
Width=40
Height=34
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[YFbunGroup]
Name=YFbunGroup3
Help=
Index=-1
Style=0 - 无边框
BunStyle=1 - 垂直
BunSizeW=-1
BunSizeH=25
BunForm=0 - 无框
BunCircular=0
Button=Form1_YFbunGroup3_选择010ico=c200T`ScYTYK+a00101TZ0000000XDWJ`k[A^K\jbXak__ct[Q^oXR`r-1-1-1-1-1-1-1-1-1Form1_YFbunGroup3_直线直线，可以连续点击编辑区添加多个节点组成不规则多边形。000ico=a00001Td0000000WkWs`P``+c200TvTrWYWU+c*2_C_FWVWV-1-1-1-1-1-1-1-1-1Form1_YFbunGroup3_曲线曲线，可以连续点击编辑区添加多个节点组成不规则曲边多边形。000ico=g00001Td0000000TFbDaS[u_dZoZCVlVp+c200TpToWYWU+c*2_d_[WYWU-1-1-1-1-1-1-1-1-1Form1_YFbunGroup3_矩形矩形，点击一次编辑区添加一个矩形。000ico=b20000?XwYXZGXC+b01TZ00?UhVA]E[E+b*6XsYh]W[a-1-1-1-1-1-1-1-1-1Form1_YFbunGroup3_椭圆椭圆，点击一次编辑区添加一个椭圆。000ico=c01TZUhUj^Y[V+c02TZWiYg^W[T-1-1-1-1-1-1-1-1-1Form1_YFbunGroup3_圆弧圆弧，点击一次编辑区添加一个圆弧。000ico=d00001TZ0000000WNWP]f]`StWg+a*5F0000000^sUR\^\_apaE+c200]gTFUdUd+c*2aK`RUdUd-1-1-1-1-1-1-1-1-1Form1_YFbunGroup3_多边形多边形，点击一次编辑区添加一个多边形。000ico=e01Td00050U\Um_s_l+e20000050Y^YqWhWe-1-1-1-1-1-1-1-1-1Form1_YFbunGroup3_贝塞尔贝塞尔，每点一次编辑区添加一个节点组成多边形。000ico=c200^^TaUqUm+c*2VEacUuUr+a00002Si0000000VbWU^tVL+a*=XMbna[bR+f*31Td0000000bUbUWLcL`dUjVDW`-1-1-1-1-1-1-1-1-1Form1_YFbunGroup3_路径直线在当前路径里添加【直线】，当前不是路径将会创建新路径。000ico=+h00001Td0000000ZmT\2^a]eSF^VUVYL2W_TU[eYdVMc[+a*=`ZVM^Iai+c200^eT`VrVm+c*2\K`VVuVk-1-1-1-1-1-1-1-1-1Form1_YFbunGroup3_路径曲线在当前路径里添加【曲线】，当前不是路径将会创建新路径。000ico=h00001Td0000000ZmT\2^a]eSF^VUVYL2W_TU[eYdVMc[+g*=TF[Vbu_l_]^EZmagVi+c200_^ThVrVm+c*2Yq`hVrVm-1-1-1-1-1-1-1-1-1Form1_YFbunGroup3_路径贝塞尔在当前路径里添加【贝塞尔】，当前不是路径将会创建新路径。000ico=c200\WTqUqUm+c*2aJ`eUqUm+a00002Si0000000bgWM^EVZ+a*=[mbMacaw+h*31Td0000000ZmT\2^a]eSF^VUVYL2W_TU[eYdVMc[+f*>gbDdFaoXdZVcLWI-1-1-1-1-1-1-1-1-1Form1_YFbunGroup3_路径矩形在当前路径里添加【矩形】，当前不是路径将会创建新路径。000ico=h00001Td0000000ZmT\2^a]eSF^VUVYL2W_TU[eYdVMc[+b01Td00?\`^HYlWi+b02TZ00?_FWLVeVW-1-1-1-1-1-1-1-1-1Form1_YFbunGroup3_路径椭圆在当前路径里添加【椭圆】，当前不是路径将会创建新路径。000ico=h00001Td0000000ZmT\2^a]eSF^VUVYL2W_TU[eYdVMc[+c01TZZt\a[cYh+c02TZ^gVCWFVq-1-1-1-1-1-1-1-1-1Form1_YFbunGroup3_文字添加文字000ico=i1002VZ1000SdUQ3&,AB-1-1-1-1-1-1-1-1-1
Enabled=True
Visible=True
ForeColor=SYS,18
BackColor=SYS,15
ColorSel=RGB(212,212,127)
ColorSelTxt=RGB(0,0,0)
ColorMove=RGB(218,242,213)
Font=微软雅黑,9,0
IcoSize=20
Spaces=2
Left=115
Top=30
Width=34
Height=309
Layout=4 - 调整高度
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[ComboBox]
Name=Combo4
Help=
Index=-1
Style=0 - 标签和下拉框
Custom=
OwnDraw=0 - 系统绘制
LabelHeight=20
ItemHeight=18
HasString=False
Sorted=False
NoHeight=False
AutoHscroll=True
MaxLength=0
Uppercase=False
Lowercase=False
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,5
Font=微软雅黑,9,0
Left=236
Top=390
Width=189
Height=22
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[ComboBox]
Name=Combo5
Help=
Index=-1
Style=0 - 标签和下拉框
Custom=<Sel>无虚线|0|虚线1|0|虚线2|0|虚线3|0|虚线4|0
OwnDraw=0 - 系统绘制
LabelHeight=20
ItemHeight=18
HasString=False
Sorted=False
NoHeight=False
AutoHscroll=True
MaxLength=0
Uppercase=False
Lowercase=False
Enabled=True
Visible=True
ForeColor=SYS,8
BackColor=SYS,5
Font=微软雅黑,9,0
Left=10
Top=485
Width=80
Height=22
Layout=7 - 跟随底部
MousePointer=0 - 默认
Tag=
Tab=True
ToolTip=
ToolTipBalloon=False
AcceptFiles=False

[Timer]
Name=Timer名称修改防抖
Help=
Index=-1
Interval=500
Enabled=False
Left=290
Top=595
Tag=

[Timer]
Name=Timer防抖
Help=
Index=-1
Interval=500
Enabled=False
Left=220
Top=600
Tag=


[AllCode]
Dim shared 文件被修改 as long, vico文件 As StringW, 鼠标x as long, 鼠标y as long
Dim Shared 视图比例 As Single =1 ,底图比例 As Single =1 ,底图x As Long, 底图y As Long 
Dim Shared t图标列表()     As String, i图标  As Long, 当前修改    As Long, 代码修改中  As Long   = 1
Dim Shared t图标显示()     As String, t颜色  As String
Dim Shared t图标恢复记录() As String ,i工具 As Long 
Dim Shared t对象列表()     As String, i对象 As Long
Dim Shared t元素列表()     As String, i元素 As Long, t元素显示() As Long, 网格显示 As Long
Dim Shared 恢复记录()      As String, i恢复 As Long, u恢复       As Long, k恢复    As Long
Dim Shared 原始颜色(16)    As Long
Dim Shared 原始颜色名(16)  As WString * 5 '= {WStr(""), WStr("黑色"), WStr("红色"), WStr("绿色"), WStr("蓝色"), WStr("黄色"), WStr("品红"), WStr("青色"), WStr("白色"), WStr("深红色"), WStr("深绿色"), WStr("深蓝色"), WStr("深黄色"), WStr("深品红"), WStr("深青色"), WStr("银色"), WStr("灰色")}
Dim Shared ColCur As HCURSOR  '控件指针，选择控件工具后产生

Type k调节点
   x  As Long  '参数坐标
   y  As Long
   tx As Long = -99999 ' 在编辑区的坐标
   ty As Long = -99999 '
   tw As Long
   th As Long
   b As Long '类型 0=位置 1=宽度和高度 2=贝塞尔第一个控制点 3=贝塞尔第二个控制点 4=路径功能 5=曲线调节 6=圆弧开始角度 7=圆弧结束角度
End Type

Dim Shared t调节点() As k调节点, 鼠标在 As Long, 鼠标在x As Long, 鼠标在y As Long
'[Form1]事件 : 完成创建窗口及所有的控件后，此时窗口还未显示。注：自定义消息里 WM_Create 此时还未创建控件和初始赋值。
'hWndForm  当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'UserData  来自显示窗口最后1个参数，例： Form2.Show(父窗口句柄,模式,UserData)
Sub Form1_WM_Create(hWndForm As hWnd, UserData As Integer)

   网格显示          = ValInt(INI_GetKey(App.Path & "vicoset.ini", "setup", "wgxs", "1"))
   YFswitcher1.Value = 网格显示
   原始颜色(1)       = GDIP_ARGB(255, 0, 0, 0)       ' 黑色
   原始颜色(2)       = GDIP_ARGB(255, 255, 0, 0)     ' 红色
   原始颜色(3)       = GDIP_ARGB(255, 0, 255, 0)     ' 绿色
   原始颜色(4)       = GDIP_ARGB(255, 0, 0, 255)     ' 蓝色
   原始颜色(5)       = GDIP_ARGB(255, 255, 255, 0)   ' 黄色
   原始颜色(6)       = GDIP_ARGB(255, 255, 0, 255)   ' 品红
   原始颜色(7)       = GDIP_ARGB(255, 0, 255, 255)   ' 青色
   原始颜色(8)       = GDIP_ARGB(255, 255, 255, 255) ' 白色
   原始颜色(9)       = GDIP_ARGB(255, 128, 0, 0)     ' 深红色
   原始颜色(10)      = GDIP_ARGB(255, 0, 128, 0)     ' 深绿色
   原始颜色(11)      = GDIP_ARGB(255, 0, 0, 128)     ' 深蓝色
   原始颜色(12)      = GDIP_ARGB(255, 128, 128, 0)   ' 深黄色
   原始颜色(13)      = GDIP_ARGB(255, 128, 0, 128)   ' 深品红
   原始颜色(14)      = GDIP_ARGB(255, 0, 128, 128)   ' 深青色
   原始颜色(15)      = GDIP_ARGB(255, 192, 192, 192) ' 银色
   原始颜色(16)      = GDIP_ARGB(255, 128, 128, 128) ' 灰色
   
   原始颜色名(1)  = WStr("黑色")
   原始颜色名(2)  = WStr("红色")
   原始颜色名(3)  = WStr("绿色")
   原始颜色名(4)  = WStr("蓝色")
   原始颜色名(5)  = WStr("黄色")
   原始颜色名(6)  = WStr("品红")
   原始颜色名(7)  = WStr("青色")
   原始颜色名(8)  = WStr("白色")
   原始颜色名(9)  = WStr("深红")
   原始颜色名(10) = WStr("深绿")
   原始颜色名(11) = WStr("深蓝")
   原始颜色名(12) = WStr("深黄")
   原始颜色名(13) = WStr("深品")
   原始颜色名(14) = WStr("深青")
   原始颜色名(15) = WStr("银色")
   原始颜色名(16) = WStr("灰色")
   
   
End Sub
'[Form1]事件 : 窗口完全显示后。
'hWndForm  当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'UserData  来自显示窗口最后1个参数，例： Form2.Show(父窗口句柄,模式,UserData)
Sub Form1_Shown(hWndForm As hWnd, UserData As Integer)
   yf_SetMessageBoxParentCenter
   Form1.WindowPlacementLoad(App.Path & "vicoset.ini", "form")   
   vico文件 = INI_GetKey(App.Path & "vicoset.ini", "setup", "file", App.Path & "常用图标.vico")
   If vico文件 = "*" Then 
      处理新建(hWndForm)
   Else 
      打开VICO图标文件(hWndForm, GetFileStrUtf8(vico文件))
   End If 
   '加载字体名称
   Combo4.AddItem ""
   Dim DC As hDC = GetDC(hWndForm)
   EnumFontsW DC             ,NULL ,Cast(Any Ptr ,@EnumFontsProc) ,0
   ReleaseDC hWndForm ,DC   
End Sub
Function EnumFontsProc(fn As LOGFONT Ptr, tm As TEXTMETRIC Ptr, dwType As DWORD, lpData As lParam) As Long
   If Left(fn->lfFaceName, 1) <> "@" Then
      Dim aa As Long = Combo4.AddItem(fn->lfFaceName)
   End If
   Function = True
End Function

Sub 处理新建(hWndForm As hWnd)
   'YFproTab1.AddTab(Form2.Show(hWndForm),"未命名（新文件）","")
   If 文件被修改 Then
      Select Case MsgBox(hWndForm, "文件已经修改，但未保存。" & vbCrLf & _
               "你需要保存吗？", _
               MB_YESNOCANCEL Or MB_ICONQUESTION Or MB_DEFBUTTON1 Or MB_APPLMODAL)
         Case IDYES
            If 保存文件(hWndForm) = 0 Then Return
         Case IDNO
            
         Case IDCANCEL
            Return
      End Select
      
   End If
   vico文件 = ""
   打开VICO图标文件(hWndForm, "<vico></vico>") '
   
   
End Sub

Function 保存文件(hWndForm As hWnd) As Long
   If LenW(vico文件) = 0 Then
      Dim 文件 As StringW = FF_SaveFileDialog(hWndForm, "保存矢量图标", "新矢量图标", "", "全部(*.vico)|*.vico|所有文件(*.*)|*.*", "vico", OFN_EXPLORER Or OFN_NOCHANGEDIR Or OFN_OVERWRITEPROMPT Or OFN_NOREADONLYRETURN, False)
      If Len(文件) Then
         vico文件 = 文件
         Dim nn As StringW = App.ProductName & WStr("_ ") & App.FileMajor & "." & App.FileMinor & "." & App.FileRevision & "." & App.FileBuild
         nn &= " ("
         nn &= vico文件
         nn &= ")"
         Form1.Caption = nn
      Else
         Return 0
      End If
   End If
   文件被修改 = 0
   YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_保存) = 20
   Dim i As Long, ss As String ="<sel>" & i图标 & "</sel>" & vbCrLf
   If UBound(t图标列表) > -1 Then
      For i = 0 To UBound(t图标列表)
         If Len(t图标列表(i)) Then ss &= "<vico>" & t图标列表(i) & "</vico>" & vbCrLf
      Next
   End If
   
   SaveFileStrUtf8(vico文件, ss)
   Function = 1
   
End Function

'[Form1.Picture1]事件 : 重绘，系统通知控件需要重新绘画。
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Function Form1_Picture1_WM_Paint(hWndForm As hWnd, hWndControl As hWnd) As LResult
   'Dim tt As ULong = GetTickCount
   Dim gg As yGDI = yGDI(hWndControl, GetSysColor(COLOR_BTNFACE), True)
   gg.Dpi = 1
   Dim As Long i, x = DpiScaleI(50), y = DpiScaleI(50), c, w = gg.m_Width - x * 2, h = gg.m_Height - x * 2, pw, tx, ty
   pw = IIf(w > h, h, w)
   pw *= 视图比例
   
   tx = (w - pw) / 2 + x
   ty = (h - pw) / 2 + y
   
   gg.Pen 1, 0
   gg.BrushHatch(HS_DIAGCROSS, BGR(225, 225, 225))
   
   gg.DrawFrame tx, ty, pw + 1, pw + 1
   'If LenW(底图文件) Then
   '   Dim As Single tw = pw *底图比例
   '   x = 底图x + tx
   '   y = 底图y + ty
   '   gg.LoadImgFile(底图文件) ', x, y, tw, 0)
   '   'gg.DrawCopyImg(x, y, tw, tw * (gg.m_ImgHeight / gg.m_ImgWidth), 0, 0, gg.m_ImgWidth, gg.m_ImgHeight)
   '   SetStretchBltMode gg.m_Dc, COLORONCOLOR 'HALFTONE  BLACKONWHITE
   '   StretchBlt(gg.m_Dc, x, y, tw, tw * (gg.m_ImgHeight / gg.m_ImgWidth), gg.m_bDc, 0, 0, gg.m_ImgWidth, gg.m_ImgHeight, SRCCOPY)
   'End If
   If 截图DC Then
      SetStretchBltMode gg.m_Dc, COLORONCOLOR 'HALFTONE  BLACKONWHITE
      StretchBlt(gg.m_Dc, tx+底图x*视图比例, ty+底图y*视图比例, pw*底图比例, pw*底图比例, 截图DC, 0, 0, 截图W, 截图H, SRCCOPY)
      gg.GpBrush GDIP_ARGB(140, 255, 255, 255) 
      gg.GpPen 0, 0
      gg.GpDrawFrame   tx, ty, pw, pw
   End If
   gg.Pen 1, 0
   Dim aa As Long = pw * 0.02
   For i = 0 To 50
      x = pw * 0.02 *i + tx
      y = pw * 0.02 *i + ty
      gg.DrawLine x, ty, x, ty - aa
      gg.DrawLine x, ty + pw, x, ty + pw + aa
      gg.DrawLine tx, y, tx - aa, y
      gg.DrawLine tx + pw, y, tx + pw + aa, y
   Next
   gg.Pen 3, 0
   For i = 0 To 10
      x = pw * 0.1 *i + tx
      y = pw * 0.1 *i + ty
      gg.DrawLine x, ty, x, ty - aa * 1.5
      gg.DrawLine x, ty + pw, x, ty + pw + aa * 1.5
      gg.DrawLine tx, y, tx - aa * 1.5, y
      gg.DrawLine tx + pw, y, tx + pw + aa * 1.5, y
   Next
   
   
   
   If 网格显示 Then
      Dim b As Long = pw / 10
      gg.Pen 1, BGR(255, 255, 255)
      For i = 1 To 9
         x = pw * 0.1 *i + tx
         y = pw * 0.1 *i + ty
         gg.DrawLine tx, y, pw + tx, y
         gg.DrawLine x, ty, x, pw + ty
      Next
      gg.Pen 1, BGR(120, 120, 120), PS_DOT
      For i = 1 To 9
         x = pw * 0.1 *i + tx
         y = pw * 0.1 *i + ty
         gg.DrawLine tx, y, pw + tx, y
         gg.DrawLine x, ty, x, pw + ty
      Next
   End If
   If UBound(t元素列表) = -1 And 截图DC = 0 Then
      gg.SetColor BGR(0, 115, 229)
      gg.Font, (pw * 0.05)
      y = ty + pw * 0.05
      gg.DrawTextS tx, y, pw, pw * 0.08, WStr("勇芳_矢量图标编辑器"), DT_CENTER Or DT_VCENTER Or DT_SINGLELINE
      y += pw * 0.10
      gg.DrawTextS tx, y, pw, pw * 0.08, WStr("勇芳_可视化代码绘画编辑器"), DT_CENTER Or DT_VCENTER Or DT_SINGLELINE
      gg.SetColor BGR(0, 0, 0)
      gg.Font, (pw * 0.04)
      y += pw * 0.10
      gg.DrawTextS tx, y, pw, pw * 0.07, WStr("在图元素列表中先添加绘图元素"), DT_CENTER Or DT_VCENTER Or DT_SINGLELINE
      y += pw * 0.08
      gg.DrawTextS tx, y, pw, pw * 0.07, WStr("有图元素在编辑区里，点击可选中它"), DT_CENTER Or DT_VCENTER Or DT_SINGLELINE
      y += pw * 0.08
      gg.DrawTextS tx, y, pw, pw * 0.07, WStr("鼠标可以拖标记点改变位置"), DT_CENTER Or DT_VCENTER Or DT_SINGLELINE
      y += pw * 0.08
      gg.DrawTextS tx, y, pw, pw * 0.07, WStr("滚轮可以缩放视图比例"), DT_CENTER Or DT_VCENTER Or DT_SINGLELINE
      y += pw * 0.08
      gg.DrawTextS tx, y, pw, pw * 0.07, WStr("当无选择图元素时拖动是底图"), DT_CENTER Or DT_VCENTER Or DT_SINGLELINE
      y += pw * 0.08
      gg.DrawTextS tx, y, pw, pw * 0.07, WStr("按下Ctrl键后拖动节点按整十调整"), DT_CENTER Or DT_VCENTER Or DT_SINGLELINE
      y += pw * 0.08
      gg.DrawTextS tx, y, pw, pw * 0.07, WStr("按下Shift键拖动大小时宽高一致"), DT_CENTER Or DT_VCENTER Or DT_SINGLELINE
      y += pw * 0.08
      gg.DrawTextS tx, y, pw, pw * 0.07, WStr("本软件开源，可在gitee下载源码"), DT_CENTER Or DT_VCENTER Or DT_SINGLELINE
      '
      '
      
   ElseIf i图标 >= 0 And i图标 <= UBound(t图标显示) Then
      gg.GpDrawVectorIcon(tx, ty, pw, pw, Utf8toStr(t图标显示(i图标)))
   End If
   If i工具 Then
      y = ty - pw * 0.1
      x = tx - pw * 0.1
      w = pw * 0.1
      gg.Pen 1, 0
      gg.Brush BGR(255, 255, 255)
      gg.DrawEllipse x, y, w, w
      gg.GpDrawVectorIcon(x, y, w, w, YFbunGroup3.ButtonIconStr(i工具))
   End If
   If 鼠标在 Then
      gg.Pen 1, &H5A5A5A
      if 鼠标y >= ty And 鼠标y <= ty + pw then
         gg.DrawLine 0, 鼠标y, tx, 鼠标y
         gg.DrawLine tx + pw, 鼠标y, gg.m_Width, 鼠标y
      End If
      if 鼠标x >= tx And 鼠标x <= tx + pw then
         gg.DrawLine 鼠标x, 0, 鼠标x, ty
         gg.DrawLine 鼠标x, ty + pw, 鼠标x, gg.m_Height
      End If
      
      If UBound(t调节点) > -1 Then
         For i = 0 To UBound(t调节点)
            If t调节点(i).tx < -99990 And t调节点(i).ty < -99990 Then
               t调节点(i).tx = t调节点(i).x  / 1000 *pw - DpiScaleI(10)
               t调节点(i).ty = t调节点(i).y  / 1000 *pw - DpiScaleI(10)
               t调节点(i).tw = t调节点(i).tx + DpiScaleI(20)
               t调节点(i).th = t调节点(i).ty + DpiScaleI(20)
            End If
         Next
         
         
         For i = 1 To UBound(t调节点)
            If t调节点(i).b = 2 Or t调节点(i).b = 3 Or t调节点(i).b = 6 Or t调节点(i).b = 7 Then
               Select Case t调节点(i).b
                  Case 2
                     If t调节点(i -1).b = 4 And i -2 >= 0 Then
                        x = t调节点(i -2).tx + DpiScaleI(10) + tx
                        y = t调节点(i -2).ty + DpiScaleI(10) + ty
                     Else
                        x = t调节点(i -1).tx + DpiScaleI(10) + tx
                        y = t调节点(i -1).ty + DpiScaleI(10) + ty
                     End If
                  Case 3
                     x = t调节点(i + 1).tx + DpiScaleI(10) + tx
                     y = t调节点(i + 1).ty + DpiScaleI(10) + ty
                  Case 6, 7
                     x = t调节点(0).tx + DpiScaleI(10) + tx
                     y = t调节点(0).ty + DpiScaleI(10) + ty
               End Select
               gg.Pen 1, BGR(255, 102, 255)
               gg.DrawLine x, y, t调节点(i).tx + DpiScaleI(10) + tx, t调节点(i).ty + DpiScaleI(10) + ty
               gg.Pen 1, BGR(255, 255, 0), PS_DOT
               gg.DrawLine x, y, t调节点(i).tx + DpiScaleI(10) + tx, t调节点(i).ty + DpiScaleI(10) + ty
            End If
            
            
         Next
         gg.gpPen 2, GDIP_ARGB(121, 0, 128, 255)
         gg.gpBrush GDIP_ARGB(150, 255, 255, 102)
         gg.Font "Arial", DpiScaleI(12), True
         Dim ti As Long = 1
         Dim As Single nx, ny, nw, nh, n5 = DpiScaleF(5), n30 = DpiScaleI(30), n20 = DpiScaleI(20), n10 = DpiScaleI(10)
         For i = 0 To UBound(t调节点)
            If t调节点(i).b = 4 Then
               
            Else
               nx = t调节点(i).tx + tx
               ny = t调节点(i).ty + ty
               If i = 0 Then
                  gg.gpPen 3, GDIP_ARGB(160, 255, 255, 255)
                  gg.GpDrawLine nx, ny + n10, nx + n20, ny + n10
                  gg.GpDrawLine nx + n10, ny, nx + n10, ny + n20
                  gg.gpPen 1, GDIP_ARGB(160, 255, 128, 0)
                  gg.GpDrawLine nx, ny + n10, nx + n20, ny + n10
                  gg.GpDrawLine nx + n10, ny, nx + n10, ny + n20
                  'gg.gpPen 1, GDIP_ARGB(200, 255, 255, 255)
                  'gg.gpBrush GDIP_ARGB(140, 255, 102, 255)
                  'gg.DrawEllipse(x + DpiScaleI(5), y + DpiScaleI(5), n10, n10)
                  gg.gpPen 2, GDIP_ARGB(121, 0, 128, 255)
                  'gg.gpBrush GDIP_ARGB(150, 255, 255, 102)
                  If 鼠标在 = i + 2 Then
                     gg.SetColor BGR(0, 115, 229)
                     gg.Font, (pw * 0.04)
                     gg.DrawTextS tx, pw * 1.03 + ty, pw, pw * 0.08, WStr("按下Ctrl键拖动中心点，用于旋转。"), DT_CENTER Or DT_VCENTER Or DT_SINGLELINE
                     gg.Font "Arial", DpiScaleI(12), True
                  End If
                  
               Else
                  If 鼠标在 = i + 2 Then
                     nx -= n5
                     ny -= n5
                     nw = n30
                     gg.SetColor BGR(0, 115, 229)
                     gg.Font, (pw * 0.04)
                     Dim nn As StringW
                     Select Case t调节点(i).b
                        Case 0 : nn = WStr("按下Ctrl键拖动按整十拖。")
                        Case 1 : nn = WStr("按下Shift键拖动，宽度和高度保持一致。")
                        Case 2, 3 : nn = WStr("按下Shift键拖动，贝塞尔为圆角。")
                     End Select
                     gg.DrawTextS tx, pw * 1.03 + ty, pw, pw * 0.08, nn, DT_CENTER Or DT_VCENTER Or DT_SINGLELINE
                     gg.Font "Arial", DpiScaleI(12), True
                  Else
                     nw = n20
                  End If
                  If t调节点(i).b = 1 Then
                     gg.gpDrawFrame(nx, ny, nw, nw)
                  Else
                     If t调节点(i).b = 0 Then
                        gg.gpDrawEllipse(nx, ny, nw, nw)
                        gg.DrawTextS(nx, ny, nw, nw, WStr(ti), DT_CENTER Or DT_VCENTER Or DT_SINGLELINE)
                        ti += 1
                     Else
                        gg.gpDrawEllipse(nx + n5, ny + n5, nw - n10, nw - n10)
                     End If
                  End If
                  
               End If
            End If
         Next
      End If
   End If
   'Print GetTickCount - tt
   Function = TRUE ' 告诉系统，我们自绘了，不需要系统绘画。
End Function

'[Form1.YFList1]事件 : 列表项目选择已经改变
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
'newIndex    新的索引 (从零开始)
Sub Form1_YFList1_SelChange(hWndForm As hWnd, hWndControl As hWnd, newIndex As Long)
   If newIndex = -1 Then Return
   Dim ti As Long = YFList1.ItemData(newIndex)
   '先保存当前数据
   If i图标 = ti And k恢复 = 0 Then Return
   '初始化新数据
   '保存恢复记录
   Dim nn As String
   If i图标 >= 0 And i图标 <= UBound(t图标恢复记录) Then
      If UBound(恢复记录) > -1 Then
         nn = MKL(i恢复) & MKL(u恢复) & YF_Join(恢复记录(), Chr(1))
      end if
      t图标恢复记录(i图标) = nn
   End If
   
   i图标 = ti
   '提取恢复记录
   If i图标 >= 0 And i图标 <= UBound(t图标恢复记录) Then
      If Len(t图标恢复记录(i图标)) > 9 Then
         i恢复 = CVL(Left(t图标恢复记录(i图标), 4))
         u恢复 = CVL(Mid(t图标恢复记录(i图标), 5, 4))
         vbSplit(Mid(t图标恢复记录(i图标), 9), Chr(1), 恢复记录())
      Else
         Erase 恢复记录
         i恢复 = 0
         u恢复 = 0
         
      End If
   Else
      Erase 恢复记录
      i恢复 = 0
      u恢复 = 0
   End If
   
   YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_恢复) = IIf(i恢复 > 0, 0, 20)
   YFbunGroup5.ButtonText(Form1_YFbunGroup1_Button_恢复)  = WStr("恢复_") & i恢复
   YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_重做) = IIf(i恢复 < u恢复, 0, 20)
   YFbunGroup5.ButtonText(Form1_YFbunGroup1_Button_重做)  = WStr("重做_") & u恢复 - i恢复
   
   
   YFbunGroup1.ButtonState(Form2_YFbunGroup1_Button_向上) = IIf(i图标 > 0, 0, 20)
   YFbunGroup1.ButtonState(Form2_YFbunGroup1_Button_向下) = IIf(i图标 + 1 < YFList1.ListCount, 0, 20)
   YFbunGroup1.ButtonState(Form2_YFbunGroup1_Button_删除) = IIf(YFList1.ListCount > 1, 0, 20)
   
   加载图标(t图标列表(i图标))
   
   YFList1.Refresh
   Picture1.Refresh
   Form1.Picture2.Refresh
End Sub

'[Form1.YFList1]事件 : 自绘控件
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
'StartY      最初开始显示位置，以实际像素为单位，就是索引0 项目显示的位置 计算第一个显示项目=Int(-StartY / 行高)
'ItemHeight  行高，100%DPI数值，实际使用时=DpiScaleI(ItemHeight)  来支持高DPI
'sumU        项目总数量，循环时用 For i=0 To sumU-1
'nList       项目数组指针，使用时是 nList[i]
'selIndex    当前被选择项目
'kMouse      鼠标在什么项目上，从0开始的索引，=-1 表示没在
'kPress      鼠标是不是按下
Function Form1_YFList1_OwnerDraw(hWndForm As hWnd, hWndControl As hWnd, StartY As Long, ItemHeight As Long, sumU As Long, nList As YFListData Ptr, selIndex As Long, kMouse As Long, kPress As Long) As LResult
   Dim 窗口色       As ULong = BGR(255, 255, 255)
   Dim 窗口字       As ULong = &H000000
   Dim 窗口亮度色10 As Long  = BGR(229, 255, 229)
   Dim 窗口亮度色20 As Long  = BGR(242, 229, 255)
   Dim 窗口亮度色40 As Long  = BGR(153, 204, 255)
   
   
   Dim gg  As yGDI   = yGDI(hWndControl, 窗口色, True) 'WM_PAINT事件里必须用这行初始化 yGDI
   Dim dpi As Single = gg.Dpi
   Dim ww  As Long   = gg.m_Width, hh As Long = gg.m_Height
   Dim ah  As Long   = DpiScaleI(ItemHeight) '行高
   Dim ai  As Long '列表框中第一个可见项目
   If sumU * ah > hh Then ww -= 10 *dpi '有滚动条时
   Dim x As Long
   gg.SetColor 窗口字
   ai = Int( - StartY / ah)
   dim y As Long = StartY + ai *ah
   gg.dpi = 1
   Dim As Long ci, i, tx, ty, tw, th
   'gg.Pen 0 ,0
   gg.Pen 1, 窗口亮度色10
   For i = ai To sumU -1
      gg.Pen 0, 0
      If selIndex = i Then
         gg.Brush 窗口亮度色40
         gg.DrawFrame 0, y, ww, ah
      Else
         If kMouse = i Then
            gg.Brush IIf(kPress, 窗口亮度色20, 窗口亮度色10)
            gg.DrawFrame 0, y, ww, ah
         End If
      End If
      gg.Pen 1, &HC3C3C3
      gg.Brush -1 ' &HFFFFFF
      tx = x + (ww - (ah -25 *dpi)) / 2
      ty = y + 5 *dpi
      tw = ah -25 *dpi
      
      gg.DrawFrame tx, ty, tw, tw
      gg.GpDrawVectorIcon(tx, ty, tw, tw, Utf8toStr(t图标列表(nList[i].DataValue)))
      gg.Font, 9 *dpi
      gg.DrawTextS(x, y + ah -20 *dpi, ww, 20 *dpi, IIf( *nList[i].sText = "", WStr("图标 ") & nList[i].DataValue + 1, WStr(nList[i].DataValue + 1) & ". " & *nList[i].sText), DT_CENTER Or DT_VCENTER Or DT_SINGLELINE Or DT_NOPREFIX Or DT_WORD_ELLIPSIS)
      
      y += ah
      gg.Pen 1, BGR(165, 165, 165)
      gg.DrawLine x, y -1, ww, y -1
      If y > hh Then Exit For
   Next
   gg.Pen 1, BGR(0, 0, 0)
   gg.Brush
   gg.DrawFrame 0, 0
   
   Return True
   Function = FALSE ' 自己画了后需要应返回 TRUE 控件就不画了，不然控件会再画。
   
End Function

'[Form1.YFbunGroup5]事件 : 点击了某个按钮
'hWndForm  当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'nID       按钮号，鼠标点击了某个按钮，就是点击后释放鼠标时触发
Function Form1_YFbunGroup5_Command(hWndForm As hWnd, hWndControl As hWnd, nID As Long) As Long
   
   Select Case nID
      Case Form1_YFbunGroup1_Button_新建 ' 新建
         处理新建(hWndForm)
      Case Form1_YFbunGroup1_Button_打开 ' 打开
         处理新建(hWndForm)
         Dim 文件 As StringW = FF_OpenFileDialog(hWndForm, _
            "打开矢量图标", _
            "", _
            "", _
            "全部(*.vico)|*.vico|所有文件(*.*)|*.*", _
            "vico", _
            OFN_EXPLORER Or OFN_NOCHANGEDIR Or OFN_CREATEPROMPT, _
            False)
         If Len(文件) Then
            vico文件 = 文件
            打开VICO图标文件(hWndForm, GetFileStrUtf8(文件))
         End If
      Case Form1_YFbunGroup1_Button_保存 ' 保存
         保存文件(hWndForm)
      Case Form1_YFbunGroup1_Button_4 '
         
      Case Form1_YFbunGroup1_Button_剪切 ' 剪切
         Dim i As Long = YFList2.ListIndex
         If i元素 >= 0 And i元素 <= UBound(t元素列表) Then
            AfxSetClipboardText(WStr("<yfvb_vico>") & YFList2.List(i) & WStr("<name>") & t元素列表(i元素))
            Form1_YFbunGroup2_Command(0, 0, Form2_YFbunGroup2_Button_删除)
         End If
      Case Form1_YFbunGroup1_Button_复制 ' 复制
         Dim i As Long = YFList2.ListIndex
         If i元素 >= 0 And i元素 <= UBound(t元素列表) Then
            AfxSetClipboardText(WStr("<yfvb_vico>") & YFList2.List(i) & WStr("<name>") & t元素列表(i元素))
         End If
         
      Case Form1_YFbunGroup1_Button_粘贴 ' 粘贴
         Dim ss As Stringw = AfxGetClipboardText
         If LeftW(ss, 11) <> "<yfvb_vico>" Then
            MsgBox(hWndForm, "系统粘贴板中没有矢量图标数据", _
               MB_OK Or MB_ICONERROR Or MB_DEFBUTTON1 Or MB_APPLMODAL)
         Else
            Dim i As Long = UBound(t元素列表) + 1
            Dim n As StringW, f As Long
            f = InStrW(ss, "<name>")
            ReDim Preserve t元素列表(i), t元素显示(i)
            t元素列表(i) = MidW(ss, f + 6)
            t元素显示(i) = 1
            YFList2.InsertItem(0, MidW(ss, 12, f -12))
            Form1.YFList2.ListIndex = 0
            Form1_YFList2_SelChange(0, 0, 0)
            合成VICO数据()
         End If
         
      Case Form1_YFbunGroup5_Button_底图 ' 底图
         'Dim 文件 As StringW = FF_OpenFileDialog(hWndForm, _
         '   "打开图像", _
         '   "", _
         '   "", _
         '   "全部(*.jpg;*.bmp;*.png;*.ico)|*.jpg;*.bmp;*.png;*.ico|所有文件(*.*)|*.*", _
         '   "jpg", _
         '   OFN_EXPLORER Or OFN_NOCHANGEDIR Or OFN_CREATEPROMPT, _
         '   False)
         'If Len(文件) Then
         '   底图文件 = 文件
         'Else
         '   底图文件 = ""
         'End If
         '底图比例 = 1
         '底图x    = 0
         '底图y    = 0
         Form1.Visible = False
         Form3.Show(hWndForm, True)
         Form1.Visible = True
         
         
      Case Form1_YFbunGroup1_Button_恢复 ' 恢复
         恢复操作()
      Case Form1_YFbunGroup1_Button_重做 ' 重做
         重做操作()
      Case Form1_YFbunGroup5_Button_新图
         PopupMenu hWndForm, PopupMenu1.GetItemSubhMenu(Form1_PopupMenu1_新增)
      Case Form1_YFbunGroup5_Button_关于
            OpenWWW 0, "https://gitee.com/vfb/vector-icon-editor"
      Case IDOK
         
   End Select
   
   
   Function = TRUE '  如果你处理了事件，就返回 Return TRUE ,控件就不进行默认处理了。
   
End Function

'[Form1.YFtext2]事件 : 文本已经被修改（修改前用 EN_UPDATE
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_YFtext2_EN_Change(hWndForm As hWnd, hWndControl As hWnd)
   
   If 代码修改中 Then Return
   Timer防抖.Enabled =False 
   Timer防抖.Enabled =True 

End Sub

'[Form1.YFList3]事件 : 自绘控件
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
'StartY      最初开始显示位置，以实际像素为单位，就是索引0 项目显示的位置 计算第一个显示项目=Int(-StartY / 行高)
'ItemHeight  行高，100%DPI数值，实际使用时=DpiScaleI(ItemHeight)  来支持高DPI
'sumU        项目总数量，循环时用 For i=0 To sumU-1
'nList       项目数组指针，使用时是 nList[i]
'selIndex    当前被选择项目
'kMouse      鼠标在什么项目上，从0开始的索引，=-1 表示没在
'kPress      鼠标是不是按下
Function Form1_YFList3_OwnerDraw(hWndForm As hWnd, hWndControl As hWnd, StartY As Long, ItemHeight As Long, sumU As Long, nList As YFListData Ptr, selIndex As Long, kMouse As Long, kPress As Long) As LResult
   Dim 窗口色     As ULong = BGR(255, 255, 255)
   Dim 窗口字     As ULong = BGR(0, 0, 0)
   Dim 鼠标移动色 As Long  = BGR(229, 242, 255)
   Dim 鼠标按下色 As Long  = BGR(255, 179, 255)
   Dim 选择底色   As Long  = BGR(0, 128, 255)
   Dim 选择字色   As Long  = BGR(255, 255, 255)
   Dim 外框色     As Long  = BGR(0, 0, 0)
   Dim 外框焦点色 As Long  = BGR(26, 26, 255)
   
   Dim gg  As yGDI   = yGDI(hWndControl, 窗口色, True) 'WM_PAINT事件里必须用这行初始化 yGDI
   Dim dpi As Single = gg.Dpi
   Dim ww  As Long   = gg.m_Width, hh As Long = gg.m_Height
   Dim ah  As Long   = DpiScaleI(ItemHeight) '行高
   Dim ai  As Long '列表框中第一个可见项目
   If sumU * ah > hh Then ww -= 10 *dpi '有滚动条时
   Dim x As Long = 5 *dpi
   gg.SetColor 窗口字
   ai = Int( - StartY / ah)
   Dim y As Long = StartY + ai *ah
   gg.dpi = 1
   Dim ci As Long, i As Long, n As WString * 10
   gg.Pen 0, 0
   gg.GpPen 1, GDIP_ARGB(255, 0, 0, 0)
   For i = ai To sumU -1
      If selIndex = i Then
         gg.Brush 选择底色
         gg.DrawFrame 0, y, 55 *dpi, ah
         gg.SetColor 选择字色
      Else
         If kMouse = i Then
            gg.Brush IIf(kPress, 鼠标按下色, 鼠标移动色)
            gg.DrawFrame 0, y, ww, ah
         End If
         gg.SetColor 窗口字
      End If
      
      gg.Font, 9 *dpi, True
      If nList[i].DataValue = 原始颜色(i + 1) Then
         n = WStr(i + 1) & WStr(". ") & 原始颜色名(i + 1)
      Else
         n = WStr(i + 1)
      End If
      gg.DrawTextS(x, y, 60 *dpi, ah, n, DT_VCENTER Or DT_SINGLELINE Or DT_NOPREFIX Or DT_WORD_ELLIPSIS)
      gg.gpBrush nList[i].DataValue
      gg.gpDrawFrame x + 60 *dpi, y + 2 *dpi, 30 *dpi, ah -4 *dpi
      
      y += ah
      If y > hh Then Exit For
   Next
   gg.Pen 1, IIf(hWndControl = GetFocus(), 外框焦点色, 外框色)
   gg.Brush
   gg.DrawFrame 0, 0
   Return True
   
   Function = FALSE ' 自己画了后需要应返回 TRUE 控件就不画了，不然控件会再画。
   
End Function


'[Form1.YFList3]事件 : 双击鼠标左键
'MouseFlags  MK_CONTROL   MK_LBUTTON     MK_MBUTTON     MK_RBUTTON    MK_SHIFT     MK_XBUTTON1       MK_XBUTTON2
''           CTRL键按下   鼠标左键按下   鼠标中键按下   鼠标右键按下  SHIFT键按下  第一个X按钮按下   第二个X按钮按下
'检查什么键按下用  If (MouseFlags And MK_CONTROL)<>0 Then CTRL键按下
Sub Form1_YFList3_WM_LButtonDblclk(hWndForm As hWnd, hWndControl As hWnd, MouseFlags As Long, xPos As Long, yPos As Long)
   Dim i As Long = YFList3.ListIndex
   If i < 0 Then Return
   
   Dim 旧颜色 As COLORREF = ColorGdiplueToGDI(YFList3.ItemData(i)) 'GDI的颜色值。RGB=255,51,51
   Dim 颜色   As Long     = AfxChooseColorDialog(hWndForm, 旧颜色)
   If 颜色 = -1 Then 颜色 = 原始颜色(i + 1) Else 颜色 = ColorGdiToGDIplue(颜色)
   YFList3.ItemData(i) = 颜色
   合成VICO数据()
End Sub

'[Form1.YFList2]事件 : 列表项目选择已经改变
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
'newIndex    新的索引 (从零开始)
Sub Form1_YFList2_SelChange(hWndForm As hWnd, hWndControl As hWnd, newIndex As Long)
   
   Label4(0).Visible   = False
   YFList4.Visible     = False
   YFbunGroup4.Visible = False
   
   YFtext1(0).Visible = False
   YFtext1(1).Visible = False
   YFtext1(2).Visible = False
   YFtext1(3).Visible = False
   YFtext3(0).Visible = False
   YFtext1(4).Visible = False
   YFtext1(5).Visible = False
   
   YFtext3(1).Visible   = False
   YFtext4.Visible      = False
   Check1(0).Visible    = False
   Check1(1).Visible    = False
   Check1(2).Visible    = False
   Check1(3).Visible    = False
   Combo1(0).Visible    = False
   Combo1(1).Visible    = False
   Label5(0).Visible    = False
   Label5(1).Visible    = False
   YFtext5(0).Visible   = False
   YFtext5(1).Visible   = False
   YFtext5(2).Visible   = False
   YFtext5(3).Visible   = False
   Check2.Visible       = False
   Combo2.Visible       = False
   Combo3.Visible       = False
   Form1.Combo5.Visible = False
   Label5(2).Visible    = False
   Check4.Visible       = False
   YFtext6(0).Visible   = False
   YFtext6(1).Visible   = False
   
   Check5(3).Visible  = False
   Check5(2).Visible  = False
   YFtext6(2).Visible = False
   Combo4.Visible     = False
   YFtext10.Visible   = False
   Check5(0).Visible  = False
   Check5(1).Visible  = False
   
   Check6(1).Visible  = False
   UpDown1(0).Visible = False
   UpDown1(1).Visible = False
   Label6(0).Visible  = False
   Label6(1).Visible  = False
   
   
   代码修改中 = 1
   
   If newIndex = -1 Then
      Check3.Value   = False
      Check3.Enabled = False
      Form1.YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_剪切) = 20
      Form1.YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_复制) = 20
      YFbunGroup2.ButtonState(Form2_YFbunGroup2_Button_向上)       = 20
      YFbunGroup2.ButtonState(Form2_YFbunGroup2_Button_向下)       = 20
      YFbunGroup2.ButtonState(Form2_YFbunGroup2_Button_删除)       = 20
      i元素 = -1
      Erase t调节点
      If 截图DC then
         UpDown1(0).Visible = True
         Label6(0).Visible  = True
      end if
   Else
      i元素          = YFList2.ListCount -1 - newIndex '反向显示的
      Check3.Value   = t元素显示(i元素)
      Check3.Enabled = True
      Form1.YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_剪切) = 0
      Form1.YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_复制) = 0
      YFbunGroup2.ButtonState(Form2_YFbunGroup2_Button_向上)       = IIf(newIndex > 0, 0, 20)
      YFbunGroup2.ButtonState(Form2_YFbunGroup2_Button_向下)       = IIf(newIndex + 1 < YFList2.ListCount, 0, 20)
      YFbunGroup2.ButtonState(Form2_YFbunGroup2_Button_删除)       = 0
      
      If i元素 >= 0 And i元素 <= UBound(t元素列表) Then
         Dim vu As Long = Len(t元素列表(i元素))
         If vu Then
            Dim As Long Cm(), ci, aa, bb, i
            Dim VIco As String = Utf8toStr(t元素列表(i元素))
            ReDim Cm(100)
            Cm(0) = VIco[0] '是绘画元素编号
            '提取参数
            ci = 1
            vu -= 1
            For i = 1 To vu
               If VIco[i] = 46 Then '. 包括多个0
                  If i < vu Then
                     ci += VIco[i + 1] -48
                     If ci > UBound(Cm) Then ReDim Preserve Cm(ci + 30)
                     i += 1
                  End If
               ElseIf VIco[i] = 38 Then     'i1002UA1.3Vs[`5&,单位
                  If ci > UBound(Cm) Then ReDim Preserve Cm(ci + 30)
                  Cm(ci) = i + 2 '表示文字开始位置，从1开始
                  i += Cm(ci -1) + 2 'Cm(ci-1) 是文字长度
               ElseIf VIco[i] >= 48 AndAlso VIco[i] <= 64 Then '短数值，从 0 -- 64
                  If ci > UBound(Cm) Then ReDim Preserve Cm(ci + 30)
                  Cm(ci) = VIco[i] -48
                  ci     += 1
               ElseIf VIco[i] >= 65 AndAlso VIco[i] <= 120 Then '长数值，从 0 -- 55 需要2个字符组成
                  aa = VIco[i] -65
                  i  += 1
                  If i <= vu AndAlso VIco[i] >= 65 AndAlso VIco[i] <= 120 Then
                     bb = VIco[i] -65
                  Else
                     bb = 0
                  End If
                  If ci > UBound(Cm) Then ReDim Preserve Cm(ci + 30)
                  Cm(ci) = aa * 55 + bb -1000 '合成数值，55进制
                  ci     += 1
               End If
            Next
            
            vu = ci -1 '参数个数
            Select Case Cm(0)
               Case 97, 100, 102, 103, 104
                  '直线       <a,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x1,y1,x2,y2,....xn,yn>
                  '贝塞尔曲线 <f,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x1,y1,x2,y2,x3,y3,x4,y4...[xn,yn]>
                  '圆弧       <d,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x,y,w,h,相对于x轴的起始角度(0度为原的右边中部),顺时针转了多少角度>
                  '曲线       <g,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,曲度,x1,y1,x2,y2,....xn,yn>
                  '路径       <h,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x1,y1,n,x2,y2,x3,y3,x4,y4...[xn,yn]>
                  ''                1      2        3        4        5     6      7       8        9         10        11       12        13     14 15 16 17
                  YFtext3(1).Visible = True
                  YFtext4.Visible    = True
                  Combo1(0).Visible  = True
                  Combo1(1).Visible  = True
                  Label5(0).Visible  = True
                  Label5(1).Visible  = True
                  YFtext5(0).Visible = True
                  YFtext5(1).Visible = True
                  YFtext5(2).Visible = True
                  YFtext5(3).Visible = True
                  Check2.Visible     = True
                  YFtext1(0).Visible = True
                  YFtext1(1).Visible = True
                  If Cm(0) <> 100 Then
                     Label4(0).Visible   = True
                     YFList4.Visible     = True
                     YFbunGroup4.Visible = True
                  End If
                  YFtext3(0).Visible   = True
                  Combo2.Visible       = True
                  Combo3.Visible       = True
                  Form1.Combo5.Visible = True
                  Check4.Visible       = True
                  Label5(2).Visible    = True
                  UpDown1(0).Visible   = True
                  Label6(0).Visible    = True
                  UpDown1(1).Visible   = True
                  Label6(1).Visible    = True
                  YFList4.Clear
                  Select Case Cm(0)
                     Case 100 '圆弧
                        YFtext1(2).Visible = True
                        YFtext1(3).Visible = True
                        YFtext1(4).Visible = True
                        YFtext1(5).Visible = True
                        UpDown1(1).Visible = False
                        Label6(1).Visible  = False
                        YFtext1(0).UpValue = Cm(14)
                        YFtext1(1).UpValue = Cm(15)
                        YFtext1(2).UpValue = Cm(16)
                        YFtext1(3).UpValue = Cm(17)
                        YFtext1(4).UpValue = Cm(18)
                        YFtext1(5).UpValue = Cm(19)
                        ReDim t调节点(4)
                        t调节点(1).x = Cm(14)
                        t调节点(1).y = Cm(15)
                        t调节点(2).x = t调节点(1).x + Cm(16)
                        t调节点(2).y = t调节点(1).y + Cm(17)
                        t调节点(2).b = 1
                        t调节点(0).x = t调节点(1).x + (t调节点(2).x - t调节点(1).x) / 2
                        t调节点(0).y = t调节点(1).y + (t调节点(2).y - t调节点(1).y) / 2
                        Dim As Single rx    = (t调节点(2).x - t调节点(1).x) / 2 + 50, ry = (t调节点(2).y - t调节点(1).y) / 2 + 50
                        Dim As Single k角度 = Cm(18) * 3.1415926 / 180
                        Dim As Single n角度 = k角度  + Cm(19)    * 3.1415926 / 180
                        If ry > rx Then rx = ry
                        t调节点(3).x = t调节点(0).x + rx * Cos(k角度)
                        t调节点(3).y = t调节点(0).y + rx * Sin(k角度)
                        t调节点(3).b = 6
                        t调节点(4).x = t调节点(0).x + rx * Cos(n角度)
                        t调节点(4).y = t调节点(0).y + rx * Sin(n角度)
                        t调节点(4).b = 7
                     Case 103 '曲线
                        YFtext1(2).Visible = True
                        YFtext1(2).UpValue = Cm(14)
                        ReDim t对象列表((vu -14) / 2 -1)
                        ReDim t调节点(UBound(t对象列表) + 1)
                        i对象 = 0
                        For i = 0 To UBound(t对象列表)
                           t调节点(i + 1).x = Cm(i * 2 + 15)
                           t调节点(i + 1).y = Cm(i * 2 + 16)
                           t对象列表(i)     = t调节点(i + 1).x & "," & t调节点(i + 1).y
                           YFList4.AddItem WStr("节点 ") & i + 1
                        Next
                        计算多节点中间位置()
                     Case 104 '路径
                        Dim ti As Long
                        ReDim t对象列表(vu)
                        ReDim t调节点(UBound(t对象列表) + 1)
                        i对象        = 0
                        t调节点(1).x = Cm(14)
                        t调节点(1).y = Cm(15)
                        t对象列表(0) = Cm(14) & "," & Cm(15)
                        For i = 16 To vu
                           Select Case Cm(i)
                              Case 0 '路径:直线  x1;y1;x2;y2
                                 If i + 2 > vu Then Exit For
                                 ti += 1
                                 t调节点(ti + 1).b = 4
                                 t对象列表(ti)     = "0"
                                 ti += 1
                                 t调节点(ti + 1).x = Cm(i + 1)
                                 t调节点(ti + 1).y = Cm(i + 2)
                                 t对象列表(ti)     = Cm(i + 1) & "," & Cm(i + 2)
                                 i += 2
                              Case 1 '路径:曲线  x1;y1;x2;y2;x3;y3
                                 If i + 4 > vu Then Exit For
                                 ti += 1
                                 t调节点(ti + 1).b = 4
                                 t对象列表(ti)     = "1"
                                 ti += 1
                                 t调节点(ti + 1).x = Cm(i + 1)
                                 t调节点(ti + 1).y = Cm(i + 2)
                                 t调节点(ti + 1).b = 5
                                 t对象列表(ti)     = Cm(i + 1) & "," & Cm(i + 2)
                                 ti += 1
                                 t调节点(ti + 1).x = Cm(i + 3)
                                 t调节点(ti + 1).y = Cm(i + 4)
                                 t对象列表(ti)     = Cm(i + 3) & "," & Cm(i + 4)
                                 i += 4
                              Case 2 '路径:贝塞尔 x1;y1;x2;y2;x3;y3;x4;y4  x1y1=起点 x4y4=终点 x2y2=第一个控制点 x3y3=第二个控制点
                                 If i + 6 > vu Then Exit For
                                 ti += 1
                                 t调节点(ti + 1).b = 4
                                 t对象列表(ti)     = "2"
                                 ti += 1
                                 t调节点(ti + 1).x = Cm(i + 1)
                                 t调节点(ti + 1).y = Cm(i + 2)
                                 t调节点(ti + 1).b = 2
                                 t对象列表(ti)     = Cm(i + 1) & "," & Cm(i + 2)
                                 ti += 1
                                 t调节点(ti + 1).x = Cm(i + 3)
                                 t调节点(ti + 1).y = Cm(i + 4)
                                 t调节点(ti + 1).b = 3
                                 t对象列表(ti)     = Cm(i + 3) & "," & Cm(i + 4)
                                 ti += 1
                                 t调节点(ti + 1).x = Cm(i + 5)
                                 t调节点(ti + 1).y = Cm(i + 6)
                                 t对象列表(ti)     = Cm(i + 5) & "," & Cm(i + 6)
                                 i += 6
                              Case 3, 4 ''矩形 ;x;y;w;h
                                 If i + 4 > vu Then Exit For
                                 ti += 1
                                 t调节点(ti + 1).b = 4
                                 t对象列表(ti)     = Str(Cm(i))
                                 ti += 1
                                 t调节点(ti + 1).x = Cm(i + 1)
                                 t调节点(ti + 1).y = Cm(i + 2)
                                 t调节点(ti + 1).b = 0
                                 t对象列表(ti)     = Cm(i + 1) & "," & Cm(i + 2)
                                 ti += 1
                                 t调节点(ti + 1).x = Cm(i + 3)
                                 t调节点(ti + 1).y = Cm(i + 4)
                                 t调节点(ti + 1).b = 0
                                 t对象列表(ti)     = Cm(i + 3) & "," & Cm(i + 4)
                                 
                           End Select
                        Next
                        ReDim Preserve t对象列表(ti), t调节点(ti + 1)
                        ti = 1
                        For i = 1 To UBound(t调节点)
                           Select Case t调节点(i).b
                              Case 4
                                 Select Case ValInt(t对象列表(i -1))
                                    Case 0
                                       YFList4.AddItem WStr("路径：直线")
                                    Case 1
                                       YFList4.AddItem WStr("路径：曲线")
                                    Case 2
                                       YFList4.AddItem WStr("路径：贝塞尔")
                                    Case 3
                                       YFList4.AddItem WStr("路径：矩形")
                                    Case 4
                                       YFList4.AddItem WStr("路径：椭圆")
                                 End Select
                              Case 0
                                 YFList4.AddItem WStr("节点 ") & ti
                                 ti += 1
                              Case 1
                                 YFList4.AddItem WStr("宽高调节")
                              Case 2
                                 YFList4.AddItem WStr("控制点A")
                              Case 3
                                 YFList4.AddItem WStr("控制点B")
                              Case 5
                                 YFList4.AddItem WStr("弧度边")
                                 
                           End Select
                        Next
                        计算多节点中间位置()
                        
                        
                     Case 97, 102
                        
                        If Cm(0) = 102 Then Check6(1).Visible = True
                        
                        ReDim t对象列表((vu -13) / 2 -1)
                        ReDim t调节点(UBound(t对象列表) + 1)
                        i对象 = 0
                        Dim ti As Long = 1
                        For i = 0 To UBound(t对象列表)
                           t调节点(i + 1).x = Cm(i * 2 + 14)
                           t调节点(i + 1).y = Cm(i * 2 + 15)
                           t对象列表(i)     = t调节点(i + 1).x & "," & t调节点(i + 1).y
                           If Cm(0) = 97 Then
                              YFList4.AddItem WStr("节点 ") & i + 1
                           Else
                              If i Mod 3 = 1 Then
                                 t调节点(i + 1).b = 2
                                 YFList4.AddItem WStr("控制点A")
                              ElseIf i Mod 3 = 2 Then
                                 t调节点(i + 1).b = 3
                                 YFList4.AddItem WStr("控制点B")
                              Else
                                 YFList4.AddItem WStr("节点 ") & ti
                                 ti += 1
                              End If
                           End If
                        Next
                        计算多节点中间位置()
                  End Select
                  YFtext3(0).UpValue     = Cm(1)
                  Combo2.ListIndex       = Cm(2)
                  Check4.Value           = Cm(3)
                  Combo3.ListIndex       = Cm(4) Mod 3
                  Form1.Combo5.ListIndex = Int(Cm(4) / 3)
                  YFtext3(1).UpValue     = Cm(5)
                  YFtext4.UpValue        = Cm(6)
                  Combo1(0).ListIndex    = Cm(7)
                  Combo1(1).ListIndex    = Cm(8)
                  YFtext5(0).UpValue     = Cm(12)
                  YFtext5(1).UpValue     = Cm(13)
                  YFtext5(2).UpValue     = Cm(9)
                  YFtext5(3).UpValue     = Cm(10)
                  Check2.Value           = Cm(11)
                  
                  YFList4.ListIndex = 0
                  Form1_YFList4_SelChange(0, 0, 0)
                  Dim c4v As Long = Check4.Value = False
                  Combo1(0).Visible  = c4v
                  Combo1(1).Visible  = c4v
                  Label5(0).Visible  = c4v
                  Label5(1).Visible  = c4v
                  YFtext5(0).Visible = c4v
                  YFtext5(1).Visible = c4v
                  YFtext5(2).Visible = c4v
                  YFtext5(3).Visible = c4v
                  Check2.Visible     = c4v
               Case 98 ''矩形 <b,填充色,线框色,线粗,圆角w,圆角h,圆角位置1 Or 2 Or 4 Or 8（1 左上角.2 左下角.4 右上角.8 右下角）,x,y,w,h>
                  ''              1      2     3     4     5      6                                                            7 8 9 10
                  YFtext1(0).Visible = True
                  YFtext1(1).Visible = True
                  YFtext1(2).Visible = True
                  YFtext1(3).Visible = True
                  YFtext3(0).Visible = True
                  YFtext3(1).Visible = True
                  YFtext4.Visible    = True
                  Check1(0).Visible  = True
                  Check1(1).Visible  = True
                  Check1(2).Visible  = True
                  Check1(3).Visible  = True
                  YFtext6(0).Visible = True
                  YFtext6(1).Visible = True
                  UpDown1(0).Visible = True
                  Label6(0).Visible  = True
                  
                  YFtext1(0).UpValue = Cm(7)
                  YFtext1(1).UpValue = Cm(8)
                  YFtext1(2).UpValue = Cm(9)
                  YFtext1(3).UpValue = Cm(10)
                  YFtext3(0).UpValue = Cm(1)
                  YFtext3(1).UpValue = Cm(2)
                  YFtext4.UpValue    = Cm(3)
                  YFtext6(0).UpValue = Cm(4)
                  YFtext6(1).UpValue = Cm(5)
                  Dim i As Long = Cm(6)
                  Check1(0).Value = (i And 1) = 1
                  Check1(1).Value = (i And 2) = 2
                  Check1(2).Value = (i And 4) = 4
                  Check1(3).Value = (i And 8) = 8
                  ReDim t调节点(2)
                  t调节点(1).x = Cm(7)
                  t调节点(1).y = Cm(8)
                  t调节点(2).x = t调节点(1).x + Cm(9)
                  t调节点(2).y = t调节点(1).y + Cm(10)
                  t调节点(2).b = 1
                  t调节点(0).x = t调节点(1).x + (t调节点(2).x - t调节点(1).x) / 2
                  t调节点(0).y = t调节点(1).y + (t调节点(2).y - t调节点(1).y) / 2
               Case 99, 105 '<c,填充色,线框色,线粗,x,y,w,h>
                  '描绘文字 <i,填充色,线框色,线粗,折线拐角,尺寸,加粗,倾斜,下划线,删除线,x,y,长度(字体名和文字总长度),字体名,文字>
                  YFtext1(0).Visible = True
                  YFtext1(1).Visible = True
                  YFtext3(0).Visible = True
                  YFtext3(1).Visible = True
                  YFtext4.Visible    = True
                  UpDown1(0).Visible = True
                  Label6(0).Visible  = True
                  
                  ReDim t调节点(2)
                  If Cm(0) = 105 Then '描绘文字
                     YFtext1(0).UpValue   = Cm(10)
                     YFtext1(1).UpValue   = Cm(11)
                     Check5(3).Visible    = True
                     Check5(2).Visible    = True
                     YFtext6(2).Visible   = True
                     Combo4.Visible       = True
                     YFtext10.Visible     = True
                     Check5(0).Visible    = True
                     Check5(1).Visible    = True
                     Combo3.Visible       = True
                     Form1.Combo5.Visible = True
                     UpDown1(0).Visible   = False
                     Label6(0).Visible    = False
                     
                     Dim tcm As String = Mid(VIco, Cm(13), Cm(12))

                     Dim tf  As Long   = InStr(tcm, ",")
                     Combo4.Text   = Left(tcm, tf -1)
                     YFtext10.Text = Mid(tcm, tf + 1)
                     
                     Combo3.ListIndex       = Cm(4) Mod 3
                     Form1.Combo5.ListIndex = Int(Cm(4) / 3)
                     YFtext6(2).UpValue     = Cm(5)
                     Check5(0).Value        = Cm(6)
                     Check5(1).Value        = Cm(7)
                     Check5(2).Value        = Cm(8)
                     Check5(3).Value        = Cm(9)
                     t调节点(1).x           = Cm(10)
                     t调节点(1).y           = Cm(11)
                     t调节点(2).x           = 10000
                     t调节点(2).y           = 10000
                  Else
                     YFtext1(2).Visible = True
                     YFtext1(3).Visible = True
                     YFtext1(0).UpValue = Cm(4)
                     YFtext1(1).UpValue = Cm(5)
                     YFtext1(2).UpValue = Cm(6)
                     YFtext1(3).UpValue = Cm(7)
                     t调节点(1).x       = Cm(4)
                     t调节点(1).y       = Cm(5)
                     t调节点(2).x       = t调节点(1).x + Cm(6)
                     t调节点(2).y       = t调节点(1).y + Cm(7)
                  End If
                  YFtext3(0).UpValue = Cm(1)
                  YFtext3(1).UpValue = Cm(2)
                  YFtext4.UpValue    = Cm(3)
                  
                  
                  t调节点(2).b = 1
                  t调节点(0).x = t调节点(1).x + (t调节点(2).x - t调节点(1).x) / 2
                  t调节点(0).y = t调节点(1).y + (t调节点(2).y - t调节点(1).y) / 2
                  
                  If Cm(0) = 105 Then ReDim Preserve t调节点(1) '描绘文字
                  
               Case 101 '<e,填充色,线框色,线粗,圆角w,圆角h,折线拐角,几个边,旋转角度,x,y,w,h>
                  YFtext1(0).Visible   = True
                  YFtext1(1).Visible   = True
                  YFtext1(2).Visible   = True
                  YFtext1(3).Visible   = True
                  YFtext1(4).Visible   = True
                  YFtext1(5).Visible   = True
                  YFtext3(0).Visible   = True
                  YFtext3(1).Visible   = True
                  YFtext4.Visible      = True
                  YFtext6(0).Visible   = True
                  YFtext6(1).Visible   = True
                  Combo3.Visible       = True
                  Form1.Combo5.Visible = True
                  UpDown1(0).Visible   = True
                  Label6(0).Visible    = True
                  
                  YFtext1(0).UpValue = Cm(9)
                  YFtext1(1).UpValue = Cm(10)
                  YFtext1(2).UpValue = Cm(11)
                  YFtext1(3).UpValue = Cm(12)
                  YFtext1(4).UpValue = Cm(7)
                  YFtext1(5).UpValue = Cm(8)
                  
                  YFtext3(0).UpValue     = Cm(1)
                  YFtext3(1).UpValue     = Cm(2)
                  YFtext4.UpValue        = Cm(3)
                  YFtext6(0).UpValue     = Cm(4)
                  YFtext6(1).UpValue     = Cm(5)
                  Combo3.ListIndex       = Cm(6) Mod 3
                  Form1.Combo5.ListIndex = Int(Cm(6) / 3)
                  ReDim t调节点(2)
                  t调节点(1).x = Cm(9)
                  t调节点(1).y = Cm(10)
                  t调节点(2).x = t调节点(1).x + Cm(11)
                  t调节点(2).y = t调节点(1).y + Cm(12)
                  t调节点(2).b = 1
                  t调节点(0).x = t调节点(1).x + (t调节点(2).x - t调节点(1).x) / 2
                  t调节点(0).y = t调节点(1).y + (t调节点(2).y - t调节点(1).y) / 2
                  
                  
               Case Else
                  Erase t调节点
            End Select
         End If
      End If
   End If
   代码修改中 = 0
End Sub

'[Form1.YFbunGroup2]事件 : 点击了某个按钮
'hWndForm  当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'nID       按钮号，鼠标点击了某个按钮，就是点击后释放鼠标时触发
Function Form1_YFbunGroup2_Command(hWndForm As hWnd, hWndControl As hWnd, nID As Long) As Long
   
   
   Select Case nID
      Case Form2_YFbunGroup2_Button_向上, Form2_YFbunGroup2_Button_向下 ' 上
         Dim ni As Long = YFList2.ListIndex
         Dim bi As Long = ni
         If ni > 0 And nID = Form2_YFbunGroup2_Button_向上 Then bi = ni -1
         If ni < YFList2.ListCount -1 And nID = Form2_YFbunGroup2_Button_向下 Then bi = ni + 1
         If ni <> bi Then
            Dim aa As StringW = YFList2.List(bi)
            Dim bb As StringW = YFList2.List(ni)
            YFList2.List(bi)  = bb
            YFList2.List(ni)  = aa
            YFList2.ListIndex = bi
            bi = YFList2.ListCount -1 - bi
            ni = YFList2.ListCount -1 - ni
            Swap t元素列表(bi), t元素列表(ni)
            Swap t元素显示(bi), t元素显示(ni)
            i元素 = bi
            合成VICO数据()
            YFList2.Refresh
            Picture1.Refresh
            Picture2.Refresh
            YFList1.Refresh
            Form1_YFList2_SelChange(0, 0, YFList2.ListIndex)
            文件被修改 = 1
            YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_保存) = 0
         End If
         
      Case Form2_YFbunGroup2_Button_删除 ' 删
         'Select Case MsgBox(hWndForm, "你真的要删除吗？", _
         '         MB_YESNO Or MB_ICONQUESTION Or MB_DEFBUTTON1 Or MB_APPLMODAL)
         '   Case IDYES
         '   Case IDNO
         '      Return True
         'End Select
         Dim ni As Long = YFList2.ListIndex
         If ni > -1 Then
            YFList2.RemoveItem ni
            If i元素 >= 0 And i元素 < UBound(t元素列表) Then
               For i As Long = i元素 To UBound(t元素列表) -1
                  t元素列表(i) = t元素列表(i + 1)
                  t元素显示(i) = t元素显示(i + 1)
               Next
            End If
            ni = UBound(t元素列表) -1
            If ni < 0 Then Erase t元素列表, t元素显示 Else ReDim Preserve t元素列表(ni), t元素显示(ni)
            Form1_YFList2_SelChange(0, 0, -1)
         End If
         合成元素数据()
         Picture1.Refresh
         Picture2.Refresh
         YFList1.Refresh
         文件被修改 = 1
         YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_保存) = 0
      Case Form2_YFbunGroup2_Button_增加 ' 增加
         PopupMenu1.PopupMenu
   End Select
   
   Function = TRUE '  如果你处理了事件，就返回 Return TRUE ,控件就不进行默认处理了。
   
End Function

'[Form1.PopupMenu1]事件 : 点击了菜单项
'hWndForm 当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
''           本控件为功能控件，就是无窗口，无显示，只有功能。如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码
'wID      菜单项命令ID
Sub Form1_PopupMenu1_WM_Command(hWndForm As hWnd, wID As ULong)
   Dim aa As String, n As WString * 10
   Select Case wID
      Case Form1_PopupMenu1_复制 ' 复制
         Form1_YFbunGroup5_Command(0, 0, Form1_YFbunGroup1_Button_复制)
      Case Form1_PopupMenu1_剪切 ' 剪切
         Form1_YFbunGroup5_Command(0, 0, Form1_YFbunGroup1_Button_剪切)
      Case Form1_PopupMenu1_粘贴 ' 粘贴
         Form1_YFbunGroup5_Command(0, 0, Form1_YFbunGroup1_Button_粘贴)
      Case Form1_PopupMenu1_新增 ' 新增
         
      Case Form1_PopupMenu1_删除 ' 删除
         Form1_YFbunGroup2_Command(0, 0, Form2_YFbunGroup2_Button_删除)
      Case Form1_PopupMenu1_线条 ' 线条
         aa = "a00001@0000000YmYY^c^s"
         n  = WStr("线条")
      Case Form1_PopupMenu1_曲线
         aa = "g00001@0000000TFZ_Xb[^]MWO\["
         n  = WStr("曲线")
      Case Form1_PopupMenu1_矩形 ' 矩形
         aa = "b10000?XOWLYTYK"
         n  = WStr("矩形")
      Case Form1_PopupMenu1_椭圆 ' 椭圆
         aa = "c100XOWLYTYK"
         n  = WStr("椭圆")
      Case Form1_PopupMenu1_圆弧 ' 圆弧
         aa = "d00001@0000000VcWIXdXd0VZ"
         n  = WStr("圆弧")
      Case Form1_PopupMenu1_多边形
         aa = "e01@00060UAUA]f]G"
         n  = WStr("多边形")
      Case Form1_PopupMenu1_贝塞尔曲线 '描绘贝塞尔曲线 <f,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x1,y1,x2,y2,x3,y3,x4,y4...[xn,yn]>
         aa = "f00001@0000000ag]wYB`N`TVhXAXo"
         n  = WStr("贝塞尔曲线")
      Case Form1_PopupMenu1_路径 ' 新的路径
         aa = "h00001@0000000TdT["
         n  = WStr("路径")
         
      Case Form1_PopupMenu1_路径直线 ' 路径：直线
         If i元素 >= 0 AndAlso i元素 <= UBound(t元素列表) AndAlso Left(t元素列表(i元素), 1) = "h" Then
            Form1_PopupMenu2_WM_Command(hWndForm, Form1_PopupMenu2_直线)
         Else
            aa = "h00001@0000000TdT[0VtWI"
            n  = WStr("路径")
         End If
      Case Form1_PopupMenu1_路径曲线 ' 路径：曲线
         If i元素 >= 0 AndAlso i元素 <= UBound(t元素列表) AndAlso Left(t元素列表(i元素), 1) = "h" Then
            Form1_PopupMenu2_WM_Command(hWndForm, Form1_PopupMenu2_曲线)
         Else
            aa = "h00001@0000000WBVt1YsXWZU[j"
            n  = WStr("路径")
         End If
         
      Case Form1_PopupMenu1_路径贝塞尔 ' 路径：贝塞尔
         If i元素 >= 0 AndAlso i元素 <= UBound(t元素列表) AndAlso Left(t元素列表(i元素), 1) = "h" Then
            Form1_PopupMenu2_WM_Command(hWndForm, Form1_PopupMenu2_贝塞尔)
         Else
            aa = "h00001@0000000ZcV]2VMWvVF[w\K[p"
            n  = WStr("路径")
         End If
      Case Form1_PopupMenu1_路径矩形
         If i元素 >= 0 AndAlso i元素 <= UBound(t元素列表) AndAlso Left(t元素列表(i元素), 1) = "h" Then
            Form1_PopupMenu2_WM_Command(hWndForm, Form1_PopupMenu2_矩形)
         Else
            aa = "h00001@0000000TdT[3WMVj[kZm"
            n  = WStr("路径")
         End If
      Case Form1_PopupMenu1_路径椭圆
         If i元素 >= 0 AndAlso i元素 <= UBound(t元素列表) AndAlso Left(t元素列表(i元素), 1) = "h" Then
            Form1_PopupMenu2_WM_Command(hWndForm, Form1_PopupMenu2_椭圆)
         Else
            aa = "h00001@0000000TdT[4WMVj[kZm"
            n  = WStr("路径")
         End If
      Case Form1_PopupMenu1_文字
         aa = StrToUtf8("i12TF2UA0000UkXG7&,中国")
         n  = WStr("文字")
      Case Form1_PopupMenu1_五角星
         aa = "e01@TPTP0:RpWsWpZAZC"
         n  = WStr("五角星")
      Case Form1_PopupMenu1_红心
         aa = "f00101@0000000\]_G[C^CXv\IXsYtXqXQZLWuZ[Wu[OWs\GX^\]Ye\rXq]PWs^aWv_[XD`NYE`FZS_n[w^f]\\^_H"
         n  = WStr("爱心")
      Case Form1_PopupMenu1_外五角星
         aa = "e01@0005RpXMXjX\X["
         n  = WStr("外五角星")
      Case Form1_PopupMenu1_菱形
         aa = "e01@00040XMXjX\X["
         n  = WStr("菱形")
         
      Case Form1_PopupMenu1_左右镜像单 ' 左右镜像（单个元素）
         If i元素 >= 0 And i元素 <= UBound(t元素列表) Then
            Dim i As Long
            If UBound(t调节点) > 1 Then
               Select Case Left(t元素列表(i元素), 1)
                  Case "a", "f", "g", "h"
                     '线条 <a,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x1,y1,x2,y2,....xn,yn>
                     '贝塞尔曲线 <f,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x1,y1,x2,y2,x3,y3,x4,y4...[xn,yn]>
                     '曲线 <g,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,曲度,x1,y1,x2,y2,....xn,yn>
                     '路径 <h,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,n,x1,y1,x2,y2,x3,y3,x4,y4...[xn,yn]>
                     Dim As Single nx = 9999, ny = 9999, mx = -99999, my = -99999
                     For i = 1 To UBound(t调节点)
                        If t调节点(i).b <> 4 Then
                           t调节点(i).x    = t调节点(0).x - (t调节点(i).x - t调节点(0).x)
                           t对象列表(i -1) = Int(t调节点(i).x) & "," & Int(t调节点(i).y)
                           t调节点(i).tx   = -99999
                           t调节点(i).ty   = -99999
                           If i对象 = i -1 Then
                              YFtext1(0).UpValue = t调节点(i).x
                              YFtext1(1).UpValue = t调节点(i).y
                           End If
                        End If
                     Next
               合成元素数据()
               Picture2.Refresh
               YFList1.Refresh                     
                  Case "b", "c", "d", "e", "i" '描绘文字 <i,填充色,线框色,线粗,折线拐角,尺寸,加粗,倾斜,下划线,删除线,x,y,长度(字体名和文字总长度),字体名,文字>
                     
                     
                     
               End Select

            End If
         End If
      'Case Form1_PopupMenu1_左右镜像全 ' 左右镜像（全部元素）

      Case Form1_PopupMenu1_上下镜像单 ' 上下镜像（单个元素）
         If i元素 >= 0 And i元素 <= UBound(t元素列表) Then
            Dim i As Long
            If UBound(t调节点) > 1 Then
               Select Case Left(t元素列表(i元素), 1)
                  Case "a", "f", "g", "h"
                     '线条 <a,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x1,y1,x2,y2,....xn,yn>
                     '贝塞尔曲线 <f,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x1,y1,x2,y2,x3,y3,x4,y4...[xn,yn]>
                     '曲线 <g,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,曲度,x1,y1,x2,y2,....xn,yn>
                     '路径 <h,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,n,x1,y1,x2,y2,x3,y3,x4,y4...[xn,yn]>
                     Dim As Single nx = 9999, ny = 9999, mx = -99999, my = -99999
                     For i = 1 To UBound(t调节点)
                        If t调节点(i).b <> 4 Then
                           t调节点(i).y    = t调节点(0).y - (t调节点(i).y - t调节点(0).y)
                           t对象列表(i -1) = Int(t调节点(i).x) & "," & Int(t调节点(i).y)
                           t调节点(i).tx   = -99999
                           t调节点(i).ty   = -99999
                           If i对象 = i -1 Then
                              YFtext1(0).UpValue = t调节点(i).x
                              YFtext1(1).UpValue = t调节点(i).y
                           End If
                        End If
                     Next
               合成元素数据()
               Picture2.Refresh
               YFList1.Refresh                     
                  Case "b", "c", "d", "e", "i" '描绘文字 <i,填充色,线框色,线粗,折线拐角,尺寸,加粗,倾斜,下划线,删除线,x,y,长度(字体名和文字总长度),字体名,文字>
                     
                     
                     
               End Select

            End If
         End If
      'Case Form1_PopupMenu1_上下镜像全 ' 上下镜像（全部元素）
         
         
         
   End Select
   If Len(aa) Then 新增绘图元素(aa, n)
   
End Sub

Sub 新增绘图元素(vico As String, 名称 As WString)
   If Len(vico) Then
      Dim i As Long = UBound(t元素列表) + 1
      ReDim Preserve t元素列表(i), t元素显示(i)
      t元素列表(i) = vico
      t元素显示(i) = 1
      YFList2.InsertItem(0, 名称)
      Form1.YFList2.ListIndex = 0
      Form1_YFList2_SelChange(0, 0, 0)
      合成VICO数据()
      文件被修改 = 1
      YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_保存) = 0
   End If
End Sub

'[Form1.YFList2]事件 : 自绘控件
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
'StartY      最初开始显示位置，以实际像素为单位，就是索引0 项目显示的位置 计算第一个显示项目=Int(-StartY / 行高)
'ItemHeight  行高，100%DPI数值，实际使用时=DpiScaleI(ItemHeight)  来支持高DPI
'sumU        项目总数量，循环时用 For i=0 To sumU-1
'nList       项目数组指针，使用时是 nList[i]
'selIndex    当前被选择项目
'kMouse      鼠标在什么项目上，从0开始的索引，=-1 表示没在
'kPress      鼠标是不是按下
Function Form1_YFList2_OwnerDraw(hWndForm As hWnd, hWndControl As hWnd, StartY As Long, ItemHeight As Long, sumU As Long, nList As YFListData Ptr, selIndex As Long, kMouse As Long, kPress As Long) As LResult
   Dim 窗口色       As ULong = BGR(255, 255, 255)
   Dim 窗口字       As ULong = &H000000
   Dim 窗口亮度色10 As Long  = BGR(229, 255, 229)
   Dim 窗口亮度色20 As Long  = BGR(242, 229, 255)
   Dim 窗口亮度色40 As Long  = BGR(153, 204, 255)
   
   
   Dim gg  As yGDI   = yGDI(hWndControl, 窗口色, True) 'WM_PAINT事件里必须用这行初始化 yGDI
   Dim dpi As Single = gg.Dpi
   Dim ww  As Long   = gg.m_Width, hh As Long = gg.m_Height
   Dim ah  As Long   = DpiScaleI(ItemHeight) '行高
   Dim ai  As Long '列表框中第一个可见项目
   If sumU * ah > hh Then ww -= 10 *dpi '有滚动条时
   Dim x As Long
   gg.SetColor 窗口字
   ai = Int( - StartY / ah)
   Dim y As Long = StartY + ai *ah
   gg.dpi = 1
   Dim As Long ci, i, tx, ty, tw, th
   'gg.Pen 0 ,0
   gg.Pen 1, 窗口亮度色10
   
   For i = ai To sumU -1
      gg.Pen 0, 0
      If selIndex = i Then
         gg.Brush 窗口亮度色40
         gg.DrawFrame 0, y, ww, ah
      Else
         If kMouse = i Then
            gg.Brush IIf(kPress, 窗口亮度色20, 窗口亮度色10)
            gg.DrawFrame 0, y, ww, ah
         End If
      End If
      tx = x + (ww - (ah -25 *dpi)) / 2
      ty = y + 5 *dpi
      tw = ah -25 *dpi
      gg.Pen 1, &HC3C3C3
      gg.Brush -1 ' &HFFFFFF
      gg.DrawFrame tx, ty, tw, tw
      gg.GpDrawVectorIcon(tx, ty, tw, tw, t颜色 & Utf8toStr(t元素列表(sumU -1 - i)))
      
      If t元素显示(sumU -1 - i) Then
         gg.Pen 0, BGR(0, 102, 0)
         gg.Brush BGR(0, 102, 0)
      Else
         gg.Pen 3, BGR(150, 150, 150)
         gg.Brush
      End If
      gg.DrawFrame 5 *dpi, y + ah -20 *dpi, 15 *dpi, 15 *dpi
      gg.Font, 9 *dpi
      gg.DrawTextS(x, y + ah -20 *dpi, ww, 20 *dpi, IIf(Len( *nList[i].sText), *nList[i].sText, WStr("无名字")), DT_CENTER Or DT_VCENTER Or DT_SINGLELINE Or DT_NOPREFIX Or DT_WORD_ELLIPSIS)
      
      y += ah
      gg.Pen 1, BGR(165, 165, 165)
      gg.DrawLine x, y -1, ww, y -1
      If y > hh Then Exit For
   Next
   gg.Pen 1, BGR(0, 0, 0)
   gg.Brush
   gg.DrawFrame 0, 0
   
   Return True
   
   Function = FALSE ' 自己画了后需要应返回 TRUE 控件就不画了，不然控件会再画。
   
End Function


'[Form1.YFtext3]事件 : 文本已经被修改（修改前用 EN_UPDATE
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_YFtext3_EN_Change(ControlIndex As Long, hWndForm As hWnd, hWndControl As hWnd)
   If 代码修改中 Then Return
   合成元素数据()
   
End Sub

'[Form1.YFtext4]事件 : 文本已经被修改（修改前用 EN_UPDATE
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_YFtext4_EN_Change(hWndForm As hWnd, hWndControl As hWnd)
   If 代码修改中 Then Return
   合成元素数据()
   
End Sub

'[Form1.Combo1]事件 : 列表框中更改当前选择时
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_Combo1_CBN_SelChange(ControlIndex As Long, hWndForm As hWnd, hWndControl As hWnd)
   If 代码修改中 Then Return
   合成元素数据()
   
End Sub

'[Form1.YFtext5]事件 : 文本已经被修改（修改前用 EN_UPDATE
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_YFtext5_EN_Change(ControlIndex As Long, hWndForm As hWnd, hWndControl As hWnd)
   If 代码修改中 Then Return
   合成元素数据()
   
End Sub

'[Form1.Check2]事件 : 单击
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_Check2_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)
   If 代码修改中 Then Return
   合成元素数据()
   
End Sub

'[Form1.YFtext1]事件 : 文本已经被修改（修改前用 EN_UPDATE
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_YFtext1_EN_Change(ControlIndex As Long, hWndForm As hWnd, hWndControl As hWnd)
   If 代码修改中 Then Return
   If i元素 < 0 Or i元素 > UBound(t元素列表) Then Return
   Dim i  As Long
   Dim pw As Long = 返回编辑区尺寸()
   Select Case Left(t元素列表(i元素), 1)
      Case "a", "f", "g" '描绘贝塞尔曲线 <f,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x1,y1,x2,y2,x3,y3,x4,y4...[xn,yn]>
         If ControlIndex < 2 Then
            If i对象 <= UBound(t对象列表) And UBound(t调节点) > 0 Then
               i = i对象 + 1
               t调节点(i).x     = 字符转换数字(Form1.YFtext1(0).text, 2000, -1000)
               t调节点(i).y     = 字符转换数字(Form1.YFtext1(1).text, 2000, -1000)
               t对象列表(i对象) = Int(t调节点(i).x) & "," & Int(t调节点(i).y)
               
               t调节点(i).tx = t调节点(i).x  / 1000 *pw - DpiScaleI(10)
               t调节点(i).ty = t调节点(i).y  / 1000 *pw - DpiScaleI(10)
               t调节点(i).tw = t调节点(i).tx + DpiScaleI(20)
               t调节点(i).th = t调节点(i).ty + DpiScaleI(20)
               计算多节点中间位置()
            End If
         End If
      Case "b", "c", "d", "e", "i"
         ReDim t调节点(2)
         t调节点(1).x = 字符转换数字(Form1.YFtext1(0).text, 2000, -1000)
         t调节点(1).y = 字符转换数字(Form1.YFtext1(1).text, 2000, -1000)
         t调节点(2).x = t调节点(1).x + 字符转换数字(Form1.YFtext1(2).text, 1000, -1000)
         t调节点(2).y = t调节点(1).y + 字符转换数字(Form1.YFtext1(3).text, 1000, -1000)
         t调节点(2).b = 1
         t调节点(0).x = t调节点(1).x + (t调节点(2).x - t调节点(1).x) / 2
         t调节点(0).y = t调节点(1).y + (t调节点(2).y - t调节点(1).y) / 2
      Case "h" '<h,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,n,x1,y1,x2,y2,x3,y3,x4,y4...[xn,yn]>
         If ControlIndex < 2 Then
            If i对象 <= UBound(t对象列表) And UBound(t调节点) > 0 Then
               i = i对象 + 1
               If t调节点(i).b <> 4 Then
                  t调节点(i).x     = 字符转换数字(Form1.YFtext1(0).text, 2000, -1000)
                  t调节点(i).y     = 字符转换数字(Form1.YFtext1(1).text, 2000, -1000)
                  t对象列表(i对象) = Int(t调节点(i).x) & "," & Int(t调节点(i).y)
                  
                  t调节点(i).tx = t调节点(i).x  / 1000 *pw - DpiScaleI(10)
                  t调节点(i).ty = t调节点(i).y  / 1000 *pw - DpiScaleI(10)
                  t调节点(i).tw = t调节点(i).tx + DpiScaleI(20)
                  t调节点(i).th = t调节点(i).ty + DpiScaleI(20)
                  计算多节点中间位置()
               End If
            End If
         Else
            
         End If
         
   End Select
   
   合成元素数据()
   
End Sub

'[Form1.Combo2]事件 : 列表框中更改当前选择时
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_Combo2_CBN_SelChange(hWndForm As hWnd, hWndControl As hWnd)
   If 代码修改中 Then Return
   合成元素数据()
   
End Sub

'[Form1.YFtext6]事件 : 文本已经被修改（修改前用 EN_UPDATE
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_YFtext6_EN_Change(ControlIndex As Long, hWndForm As hWnd, hWndControl As hWnd)
   If 代码修改中 Then Return
   合成元素数据()
   
End Sub

'[Form1.Check1]事件 : 单击
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_Check1_BN_Clicked(ControlIndex As Long, hWndForm As hWnd, hWndControl As hWnd)
   
   If 代码修改中 Then Return
   
   合成元素数据()
   
End Sub

'[Form1.YFList4]事件 : 列表项目选择已经改变
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
'newIndex    新的索引 (从零开始)
Sub Form1_YFList4_SelChange(hWndForm As hWnd, hWndControl As hWnd, newIndex As Long)
   If newIndex = -1 Or i元素 < 0 Or i元素 > UBound(t元素列表) Then
      YFbunGroup4.ButtonState(Form2_YFbunGroup4_Button_向上) = 20
      YFbunGroup4.ButtonState(Form2_YFbunGroup4_Button_向下) = 20
      YFbunGroup4.ButtonState(Form2_YFbunGroup4_Button_删除) = 20
      
      Return
   End If
   
   Select Case Left(t元素列表(i元素), 1)
      Case "a", "f", "g", "h" '
         '线条 <a,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x1,y1,x2,y2,....xn,yn>
         '贝塞尔曲线 <f,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x1,y1,x2,y2,x3,y3,x4,y4...[xn,yn]>
         '描绘曲线 <g,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,曲度,x1,y1,x2,y2,....xn,yn>
         '路径 <h,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,n,x1,y1,x2,y2,x3,y3,x4,y4...[xn,yn]>
         If newIndex > UBound(t对象列表) Then Return
         i对象 = newIndex
         If Left(t元素列表(i元素), 1) = "h" Then
            YFbunGroup4.ButtonState(Form2_YFbunGroup4_Button_向上) = IIf(t调节点(i对象 + 1).b = 4 And i对象 > 1, 0, 20)
            YFbunGroup4.ButtonState(Form2_YFbunGroup4_Button_向下) = 20
            If t调节点(i对象 + 1).b = 4 And i对象 < UBound(t对象列表) Then
               Dim i As Long
               For i = i对象 + 1 To UBound(t对象列表)
                  If t调节点(i + 1).b = 4 Then
                     YFbunGroup4.ButtonState(Form2_YFbunGroup4_Button_向下) = 0
                     Exit For
                  End If
               Next
            End If
            YFbunGroup4.ButtonState(Form2_YFbunGroup4_Button_删除) = IIf(UBound(t对象列表) > 4 And t调节点(i对象 + 1).b = 4, 0, 20)
         ElseIf Left(t元素列表(i元素), 1) = "f" Then
            YFbunGroup4.ButtonState(Form2_YFbunGroup4_Button_向上) = IIf((i对象 Mod 3 = 0) And i对象 > 0, 0, 20)
            YFbunGroup4.ButtonState(Form2_YFbunGroup4_Button_向下) = IIf((i对象 Mod 3 = 0) And i对象 < UBound(t对象列表), 0, 20)
            YFbunGroup4.ButtonState(Form2_YFbunGroup4_Button_删除) = IIf(UBound(t对象列表) > 4 And (i对象 Mod 3 = 0), 0, 20)
         Else
            YFbunGroup4.ButtonState(Form2_YFbunGroup4_Button_向上) = IIf(i对象 > 0 And t调节点(i对象 + 1).b = 0, 0, 20)
            YFbunGroup4.ButtonState(Form2_YFbunGroup4_Button_向下) = IIf(i对象 < UBound(t对象列表) And t调节点(i对象 + 1).b = 0, 0, 20)
            YFbunGroup4.ButtonState(Form2_YFbunGroup4_Button_删除) = IIf(UBound(t对象列表) > 1 And t调节点(i对象 + 1).b = 0, 0, 20)
            
         End If
         If t调节点(i对象 + 1).b = 4 Then
            
         else
            Dim f As Long = InStr(t对象列表(i对象), ",")
            代码修改中         = 1
            YFtext1(0).UpValue = ValInt(Left(t对象列表(i对象), f -1))
            YFtext1(1).UpValue = ValInt(Mid(t对象列表(i对象), f + 1))
            代码修改中         = 0
         end if
   End Select
   
   
   
   
End Sub



'[Form1.Picture2]事件 : 重绘，系统通知控件需要重新绘画。
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Function Form1_Picture2_WM_Paint(hWndForm As hWnd, hWndControl As hWnd) As LResult
   Dim gg As yGDI = yGDI(hWndControl, GetSysColor(COLOR_BTNFACE), True)
   
   If i图标 <= UBound(t图标显示) Then
      gg.Font "Arial", 12, True
      gg.Pen 1, &HC3C3C3
      gg.Brush -1 ' &HFFFFFF
      gg.DrawFrame 32, 0, 16, 16
      Dim nn As String = Utf8toStr(t图标显示(i图标))
      gg.GpDrawVectorIcon(32, 0, 16, 16, nn)
      gg.DrawTextS 0, 18, 80, 20, "16 x 16", DT_CENTER Or DT_VCENTER Or DT_SINGLELINE
      gg.DrawFrame 28, 38, 24, 24
      gg.GpDrawVectorIcon(28, 38, 24, 24, nn)
      gg.DrawTextS 0, 64, 80, 20, "24 x 24", DT_CENTER Or DT_VCENTER Or DT_SINGLELINE
      gg.DrawFrame 24, 84, 32, 32
      gg.GpDrawVectorIcon(24, 84, 32, 32, nn)
      gg.DrawTextS 0, 118, 80, 20, "32 x 32", DT_CENTER Or DT_VCENTER Or DT_SINGLELINE
      gg.DrawFrame 16, 138, 48, 48
      gg.GpDrawVectorIcon(16, 138, 48, 48, nn)
      gg.DrawTextS 0, 188, 80, 20, "48 x 48", DT_CENTER Or DT_VCENTER Or DT_SINGLELINE
      gg.DrawFrame 8, 208, 64, 64
      gg.GpDrawVectorIcon(8, 208, 64, 64, nn)
      gg.DrawTextS 0, 274, 80, 20, "64 x 64", DT_CENTER Or DT_VCENTER Or DT_SINGLELINE
      
   End If
   Function = TRUE ' 告诉系统，我们自绘了，不需要系统绘画。
End Function

'[Form1.Check3]事件 : 单击
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_Check3_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)
   If i元素 < 0 Or i元素 > UBound(t元素显示) Or i图标 > UBound(t图标显示) Then Return
   t元素显示(i元素) = Check3.Value
   dim vico as String, i as long
   vico = ""
   If UBound(t元素列表) > -1 Then
      For i = 0 To UBound(t元素列表)
         If t元素显示(i) Then
            If Len(vico) Then vico &= "+"
            vico &= t元素列表(i)
         End If
      Next
   End If
   t图标显示(i图标) =t颜色 &  vico
   Picture1.Refresh
   Picture2.Refresh
   YFList2.Refresh
End Sub

'[Form1.YFList3]事件 : 列表项目选择已经改变
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
'newIndex    新的索引 (从零开始)
Sub Form1_YFList3_SelChange(hWndForm As hWnd, hWndControl As hWnd, newIndex As Long)
   Dim i As Long = Form1.YFList3.ListIndex
   If i = -1 Then
      Return
   end if
   Dim c As ULong = Form1.YFList3.ItemData(i)
   'GDI+标准RGB颜色 32位数 31--0  a是透明度=31--24  R=23--16 G=15--8 B=7--0
   'GDI标准RGB颜色  32位数 31--0  不使用   =31--24  B=23--16 G=15--8 R=7--0
   Dim As ULong a = (&HFF000000 And c) ' r = (&H00FF0000 And c), g = (&H0000FF00 And gdiplusColor), b = (&H000000FF And gdiplusColor)
   a               Shr= 24
   代码修改中      = 1
   YFtext8.UpValue = a
   代码修改中      = 0
   
   
End Sub

'[Form1.YFtext8]事件 : 文本已经被修改（修改前用 EN_UPDATE
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_YFtext8_EN_Change(hWndForm As hWnd, hWndControl As hWnd)
   If 代码修改中 Then Return
   Dim i As Long = Form1.YFList3.ListIndex
   If i = -1 Then Return
   Dim c As ULong = Form1.YFList3.ItemData(i)
   Dim a As Long  = valint(YFtext8.Text)
   If a < 0   Then a = 0
   If a > 255 Then a = 255
   c = (c And &H00FFFFFF) Or (a Shl 24)
   Form1.YFList3.ItemData(i) = c
   
   
   合成元素数据()
   文件被修改 = 1
   YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_保存) = 0
End Sub

'[Form1.YFbunGroup1]事件 : 点击了某个按钮
'hWndForm  当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'nID       按钮号，鼠标点击了某个按钮，就是点击后释放鼠标时触发
Function Form1_YFbunGroup1_Command(hWndForm As hWnd, hWndControl As hWnd, nID As Long) As Long
   
   
   Select Case nID
      Case Form2_YFbunGroup1_Button_向上, Form2_YFbunGroup1_Button_向下 ' 上
         Dim ni As Long = YFList1.ListIndex
         Dim bi As Long = ni
         If ni > 0 And nID = Form2_YFbunGroup1_Button_向上 Then bi = ni -1
         If ni < YFList1.ListCount -1 And nID = Form2_YFbunGroup1_Button_向下 Then bi = ni + 1
         If ni <> bi Then
            Dim As Long    tbi = YFList1.ItemData(bi), tni = YFList1.ItemData(ni)
            Dim As StringW gbi = YFList1.List(bi), gni     = YFList1.List(ni)
            YFList1.List(bi) = gni
            YFList1.List(ni) = gbi
            Swap t图标列表(tbi), t图标列表(tni)
            Swap t图标显示(tbi), t图标显示(tni)
            Swap t图标恢复记录(tbi), t图标恢复记录(tni)
            YFList1.ListIndex = bi
            i图标 = tbi
            YFbunGroup1.ButtonState(Form2_YFbunGroup1_Button_向上) = IIf(i图标 > 0, 0, 20)
            YFbunGroup1.ButtonState(Form2_YFbunGroup1_Button_向下) = IIf(i图标 + 1 < YFList1.ListCount, 0, 20)
            文件被修改 = 1
            YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_保存) = 0
            
         End If
         
      Case Form2_YFbunGroup1_Button_删除 ' 删
         
         Select Case MsgBox(hWndForm, "你真的要删除当前图标吗？", _
                  MB_YESNO Or MB_ICONQUESTION Or MB_DEFBUTTON2 Or MB_APPLMODAL)
            Case IDYES
            Case IDNO
               Return True
         End Select
         If YFList1.ListCount <= 1 Then
            MsgBox(hWndForm, "只剩余一个了，不能再删除了。", _
               MB_OK Or MB_ICONERROR Or MB_DEFBUTTON1 Or MB_APPLMODAL)
         Else
            Dim ni  As Long = YFList1.ListIndex
            Dim tni As Long = YFList1.ItemData(ni)
            
            YFList1.RemoveItem ni
            t图标列表(tni)     = ""
            t图标显示(tni)     = ""
            t图标恢复记录(tni) = ""
            YFList1.ListIndex  = ni
            Form1_YFList1_SelChange(0, 0, ni)
            文件被修改 = 1
            YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_保存) = 0
         End If
      Case Form2_YFbunGroup1_Button_增加 ' 增加
         Dim i As Long = UBound(t图标列表) + 1
         ReDim Preserve t图标列表(i), t图标显示(i), t图标恢复记录(i)
         t图标列表(i)     = ""
         t图标显示(i)     = ""
         t图标恢复记录(i) = ""
         i = Form1.YFList1.AddItem("", 0, i)
         Form1.YFList1.ListIndex = i
         Form1_YFList1_SelChange(0, 0, i)
         文件被修改 = 1
         YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_保存) = 0
   End Select
   
   Function = TRUE '  如果你处理了事件，就返回 Return TRUE ,控件就不进行默认处理了。
   
End Function

'[Form1.YFbunGroup4]事件 : 点击了某个按钮
'hWndForm  当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'nID       按钮号，鼠标点击了某个按钮，就是点击后释放鼠标时触发
Function Form1_YFbunGroup4_Command(hWndForm As hWnd, hWndControl As hWnd, nID As Long) As Long
   
   Select Case nID
      Case Form2_YFbunGroup4_Button_向上, Form2_YFbunGroup4_Button_向下 ' 上
         Dim 当前i As Long = YFList4.ListIndex
         Dim 改变i As Long = 当前i
         If i元素 < 0 Or i元素 > UBound(t元素列表) Then Return True
         Select Case Asc(t元素列表(i元素), 1)
            Case 102 '贝塞尔曲线 <f,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x1,y1,x2,y2,x3,y3,x4,y4...[xn,yn]>
               If 当前i > 0 And nID = Form2_YFbunGroup4_Button_向上 Then 改变i = 当前i -3
               If 当前i < YFList4.ListCount -1 And nID = Form2_YFbunGroup4_Button_向下 Then 改变i = 当前i + 3
               If 改变i < 0 Then Return True
               If 改变i > UBound(t对象列表) Then Return True
            Case 104 '路径 <h,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,n,x1,y1,x2,y2,x3,y3,x4,y4...[xn,yn]>
               
               If t调节点(当前i + 1).b <> 4 Then Return True
               Dim i As Long
               If nID = Form2_YFbunGroup4_Button_向上 Then
                  For i = 当前i -1 To 0 Step -1
                     If t调节点(i + 1).b = 4 Then
                        改变i = i
                        Exit For
                     End If
                  Next
               Else
                  For i = 当前i + 1 To UBound(t对象列表)
                     If t调节点(i + 1).b = 4 Then
                        改变i = i
                        Exit For
                     End If
                  Next
               End If
               
               
            Case Else
               If 当前i > 0 And nID = Form2_YFbunGroup4_Button_向上 Then 改变i = 当前i -1
               If 当前i < YFList4.ListCount -1 And nID = Form2_YFbunGroup4_Button_向下 Then 改变i = 当前i + 1
         End Select
         
         If 当前i <> 改变i Then
            If Asc(t元素列表(i元素), 1) = 104 Then
               '路径 需要交换一组
               Dim s对象() As String, s调节() As k调节点, s文字() As StringW
               Dim i       As Long, ti        As Long
               ReDim s对象(30), s调节(30), s文字(30)
               '先获取比较大的一方
               For i = IIf(改变i > 当前i, 改变i, 当前i) To UBound(t对象列表)
                  If ti > 30 Then Exit For
                  s对象(ti) = t对象列表(i)
                  s调节(ti) = t调节点(i + 1)
                  s文字(ti) = YFList4.List(i)
                  ti        += 1
                  If i < UBound(t对象列表) AndAlso t调节点(i + 2).b = 4 Then Exit For
               Next
               
               '先获取比较小的一方
               For i = IIf(改变i > 当前i, 当前i, 改变i) To UBound(t对象列表)
                  If ti > 30 Then Exit For
                  s对象(ti) = t对象列表(i)
                  s调节(ti) = t调节点(i + 1)
                  s文字(ti) = YFList4.List(i)
                  ti        += 1
                  If i < UBound(t对象列表) AndAlso t调节点(i + 2).b = 4 Then Exit For
               Next
               
               Dim u As Long = ti -1
               ti = IIf(改变i < 当前i, 改变i, 当前i)
               
               For i = 0 To u
                  t对象列表(i + ti)    = s对象(i)
                  t调节点(i + ti + 1)  = s调节(i)
                  YFList4.List(i + ti) = s文字(i)
               Next
               
            Else
               Swap t对象列表(改变i), t对象列表(当前i)
               Swap t调节点(改变i + 1), t调节点(当前i + 1)
            End If
            YFList4.ListIndex = 改变i
            Form1_YFList4_SelChange(0, 0, 改变i)
            
            计算多节点中间位置()
            
            i对象 = 改变i
            合成元素数据()
            Picture1.Refresh
            Picture2.Refresh
            YFList1.Refresh
            文件被修改 = 1
            YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_保存) = 0
         End If
         
      Case Form2_YFbunGroup4_Button_删除 ' 删
         If i元素 < 0 Or i元素 > UBound(t元素列表) Then Return True
         Dim 当前i As Long = YFList4.ListIndex
         If 当前i = -1 Or 当前i > UBound(t对象列表) Then Return True
         Dim gi As Long, i As Long, u As Long
         Select Case Asc(t元素列表(i元素), 1)
            Case 97, 103
               '线条 <a,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x1,y1,x2,y2,....xn,yn>
               '曲线 <g,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,曲度,x1,y1,x2,y2,....xn,yn>
               If UBound(t对象列表) <= 1 Then Return True
               YFList4.RemoveItem 当前i
               If 当前i < UBound(t对象列表) Then
                  Dim i As Long
                  For i = 当前i To UBound(t对象列表) -1
                     t对象列表(i)   = t对象列表(i + 1)
                     t调节点(i + 1) = t调节点(i + 2)
                  Next
               End If
               u = UBound(t对象列表) - 1
               ReDim Preserve t对象列表(u), t调节点(u + 1)
            Case 104 '路径 <h,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,n,x1,y1,x2,y2,x3,y3,x4,y4...[xn,yn]>
               If 当前i = 0 Then Return True
               Dim 开始 As Long, 结束 As Long
               For i = 当前i To 1 Step -1
                  If t调节点(i + 1).b = 4 Then
                     开始 = i
                     Exit For
                  End If
               Next
               结束 = UBound(t对象列表)
               For i = 开始 + 1 To UBound(t对象列表)
                  If t调节点(i + 1).b = 4 Then
                     结束 = i -1
                     Exit For
                  End If
               Next
               
               Dim b As Long = 结束 - 开始 + 1
               For i = 0 To 结束 - 开始
                  YFList4.RemoveItem 开始
               Next
               当前i = 开始
               If 当前i < UBound(t对象列表) - b Then
                  Dim i As Long
                  For i = 开始 To UBound(t对象列表) - b
                     t对象列表(i)   = t对象列表(i + b)
                     t调节点(i + 1) = t调节点(i + b + 1)
                  Next
               End If
               u = UBound(t对象列表) - b
               ReDim Preserve t对象列表(u), t调节点(u + 1)
               
            Case 102 '贝塞尔曲线 <f,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x1,y1,x2,y2,x3,y3,x4,y4...[xn,yn]>
               If UBound(t对象列表) < 4 Then Return True
               gi = 2
               If 当前i > 0 then
                  If 当前i Mod 3 = 0 Then
                     当前i -= 2
                  Else
                     当前i -= (当前i Mod 3) -1
                  End If
               End If
               YFList4.RemoveItem 当前i
               YFList4.RemoveItem 当前i
               YFList4.RemoveItem 当前i
               If 当前i < UBound(t对象列表) -2 Then
                  Dim i As Long
                  For i = 当前i To UBound(t对象列表) -3
                     t对象列表(i)   = t对象列表(i + 3)
                     t调节点(i + 1) = t调节点(i + 4)
                  Next
               End If
               u = UBound(t对象列表) - 3
               ReDim Preserve t对象列表(u), t调节点(u + 1)
               
               
         End Select
         YFbunGroup4.ButtonState(Form2_YFbunGroup4_Button_删除) = 20
         计算多节点中间位置()
         gi = 1
         For i = 1 To UBound(t调节点)
            If t调节点(i).b = 0 Then
               YFList4.List(i -1) = WStr("节点 ") & gi
               gi += 1
            End If
         Next
         If 当前i > u Then 当前i -= 1
         i对象 = 当前i
         YFList4.ListIndex = 当前i
         Form1_YFList4_SelChange(0, 0, 当前i)
         合成元素数据()
         Picture1.Refresh
         Picture2.Refresh
         YFList1.Refresh
         文件被修改 = 1
         YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_保存) = 0
         
      Case Form2_YFbunGroup4_Button_增加 ' 增加
         If i元素 < 0 Or i元素 > UBound(t元素列表) Then Return True
         YFbunGroup4.ButtonState(Form2_YFbunGroup4_Button_向上) = 20
         YFbunGroup4.ButtonState(Form2_YFbunGroup4_Button_向下) = 20
         YFbunGroup4.ButtonState(Form2_YFbunGroup4_Button_删除) = 20
         Select Case Left(t元素列表(i元素), 1)
            Case "h" ' WStr("路径")
               PopupMenu2.PopupMenu
            Case "a", "e", "g"
               新增对象坐标(10, 10)
               
            Case "f"
               新增贝塞尔(30, 30)
               
               
         End Select
         
         
   End Select
   
   Function = TRUE '  如果你处理了事件，就返回 Return TRUE ,控件就不进行默认处理了。
   
End Function

Function 新增对象坐标(x As Long, y As Long) As Long
   Dim i As Long = YFList4.ListCount
   ReDim Preserve t对象列表(i), t调节点(i + 1)
   t调节点(i + 1).x = x
   t调节点(i + 1).y = y
   t对象列表(i)     = x & "," & y
   YFList4.AddItem WStr("顶点 ") & WStr(i + 1)
   YFList4.ListIndex = i
   Form1_YFList4_SelChange(0, 0, i)
   合成元素数据()
   Picture1.Refresh
   Picture2.Refresh
   YFList1.Refresh
   文件被修改 = 1
   YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_保存) = 0
   
   计算多节点中间位置()
   Function = i
End Function
Function 新增贝塞尔(x As Long, y As Long) As Long
   
   Dim i As Long = YFList4.ListCount
   ReDim Preserve t对象列表(i + 2), t调节点(i + 3)
   
   Dim jd As Single = Atan2(t调节点(i).y - y, t调节点(i).x - x) '角度
   Dim bj As Single = sqr((t调节点(i).x - x) ^ 2 + (t调节点(i).y - y) ^ 2) '半径
   Dim As Long x1, y1
   x1 = x + bj * 0.8 * Cos(jd)
   y1 = y + bj * 0.8 * Sin(jd)
   
   t对象列表(i)     = x1 & "," & y1
   t调节点(i + 1).x = x1
   t调节点(i + 1).y = y1
   t调节点(i + 1).b = 2
   
   t对象列表(i + 1) = x & "," & y
   t调节点(i + 2).x = x
   t调节点(i + 2).y = y
   t调节点(i + 2).b = 3
   t对象列表(i + 2) = x & "," & y
   t调节点(i + 3).x = x
   t调节点(i + 3).y = y
   YFList4.AddItem WStr("控制点A")
   YFList4.AddItem WStr("控制点B")
   Function = i + 3
   Dim j As Long
   For i = 1 To UBound(t调节点)
      If t调节点(i).b = 0 Then j += 1
   Next
   YFList4.AddItem WStr("节点 ") & j
   YFList4.ListIndex = i + 2
   Form1_YFList4_SelChange(0, 0, i + 2)
   合成元素数据()
   Picture1.Refresh
   Picture2.Refresh
   YFList1.Refresh
   文件被修改 = 1
   YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_保存) = 0
   计算多节点中间位置()
   
End Function
'[Form1.PopupMenu2]事件 : 点击了菜单项
'hWndForm 当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
''           本控件为功能控件，就是无窗口，无显示，只有功能。如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码
'wID      菜单项命令ID
Sub Form1_PopupMenu2_WM_Command(hWndForm As hWnd, wID As ULong)
   
   'Print x, y
   Select Case wID
      Case Form1_PopupMenu2_直线 ' 路径:直线
         新增路径元素(0, 100, 100)
      Case Form1_PopupMenu2_曲线 '
         新增路径元素(1, 100, 100)
      Case Form1_PopupMenu2_贝塞尔 ' 路径:贝塞尔
         新增路径元素(2, 100, 100)
      Case Form1_PopupMenu2_矩形, Form1_PopupMenu2_椭圆
         新增路径元素(IIf(wID = Form1_PopupMenu2_矩形, 3, 4), 100, 100)
         
   End Select
   
End Sub

Function 新增路径元素(元素 As Long, x As Long, y As Long) As Long
   
   Dim u As Long = UBound(t对象列表)
   'Print x, y
   Select Case 元素
      Case 0 ' 路径:直线
         ReDim Preserve t对象列表(u + 2), t调节点(u + 3)
         t对象列表(u + 1) = "0"
         t对象列表(u + 2) = x & "," & y
         t调节点(u + 2).b = 4
         t调节点(u + 3).x = x
         t调节点(u + 3).y = y
         YFList4.AddItem WStr("路径：直线")
         Dim i As Long, j As Long
         For i = 1 To u + 3
            If t调节点(i).b = 0 then j += 1
         Next
         YFList4.AddItem WStr("节点 ") & j
         Function = u + 3
      Case 1 '
         ReDim Preserve t对象列表(u + 3), t调节点(u + 4)
         t对象列表(u + 1) = "1"
         t对象列表(u + 2) = x & "," & y
         t对象列表(u + 3) = x & "," & y
         t调节点(u + 2).b = 4
         t调节点(u + 3).x = x
         t调节点(u + 3).y = y
         t调节点(u + 3).b = 5
         t调节点(u + 4).x = x
         t调节点(u + 4).y = y
         YFList4.AddItem WStr("路径：曲线")
         Dim i As Long, j As Long
         For i = 1 To u + 4
            If t调节点(i).b = 0 Then j += 1
         Next
         YFList4.AddItem WStr("弧度边")
         YFList4.AddItem WStr("节点 ") & j
         Function = u + 4
      Case 2 ' 路径:贝塞尔
         ReDim Preserve t对象列表(u + 4), t调节点(u + 5)
         
         Dim jd As Single = Atan2(t调节点(u + 1).y - y, t调节点(u + 1).x - x) '角度
         Dim bj As Single = sqr((t调节点(u + 1).x - x) ^ 2 + (t调节点(u + 1).y - y) ^ 2) '半径
         Dim As Long x1, y1
         x1 = x + bj * 0.8 * Cos(jd)
         y1 = y + bj * 0.8 * Sin(jd)
         
         t对象列表(u + 1) = "2"
         t对象列表(u + 2) = x1 & "," & y1
         t对象列表(u + 3) = x  & "," & y
         t对象列表(u + 4) = x  & "," & y
         t调节点(u + 2).b = 4
         t调节点(u + 3).x = x1
         t调节点(u + 3).y = y1
         t调节点(u + 3).b = 2
         t调节点(u + 4).x = x
         t调节点(u + 4).y = y
         t调节点(u + 4).b = 3
         t调节点(u + 5).x = x
         t调节点(u + 5).y = y
         YFList4.AddItem WStr("路径：贝塞尔")
         Dim i As Long, j As Long
         For i = 1 To u + 5
            If t调节点(i).b = 0 Then j += 1
         Next
         YFList4.AddItem WStr("调节A")
         YFList4.AddItem WStr("调节B")
         YFList4.AddItem WStr("节点 ") & j
         Function = u + 4
      Case 3, 4 'Form1_PopupMenu2_矩形, Form1_PopupMenu2_椭圆
         ReDim Preserve t对象列表(u + 3), t调节点(u + 4)
         t对象列表(u + 1) = Str(元素)
         t对象列表(u + 2) = x & "," & y
         t对象列表(u + 3) = "200,200"
         t调节点(u + 2).b = 4
         t调节点(u + 3).x = x
         t调节点(u + 3).y = y
         t调节点(u + 4).x = x + 200
         t调节点(u + 4).y = y + 200
         
         YFList4.AddItem IIf(元素 = 3, WStr("路径：矩形"), WStr("路径：椭圆"))
         Dim i As Long, j As Long
         For i = 1 To u + 4
            If t调节点(i).b = 0 Then j += 1
         Next
         YFList4.AddItem WStr("节点 ") & j -1
         YFList4.AddItem WStr("节点 ") & j
         Function = u + 4
         
   End Select
   Dim i As Long = YFList4.ListCount
   YFList4.ListIndex = i
   Form1_YFList4_SelChange(0, 0, i)
   合成元素数据()
   Picture1.Refresh
   Picture2.Refresh
   YFList1.Refresh
   文件被修改 = 1
   YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_保存) = 0
   
End Function

'[Form1]事件 : 即将关闭窗口，返回非0可阻止关闭
'hWndForm  当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
Function Form1_WM_Close(hWndForm As hWnd) As LResult
   If 文件被修改 Then
      Select Case MsgBox(hWndForm, "文件已经修改，但未保存。" & vbCrLf & _
               "你需要保存吗？", _
               MB_YESNOCANCEL Or MB_ICONQUESTION Or MB_DEFBUTTON1 Or MB_APPLMODAL)
         Case IDYES
            If 保存文件(hWndForm) = 0 Then Return True
         Case IDNO
            
         Case IDCANCEL
            Return True
      End Select
      
   End If
   Form1.WindowPlacementSave(App.Path & "vicoset.ini", "form")
   If vico文件 = "" Then vico文件 = "*"
   INI_SetKey(App.Path & "vicoset.ini", "setup", "file", vico文件)
   If 截图Bmp Then DeleteObject 截图Bmp : 截图Bmp = 0
   If 截图DC  Then DeleteDC 截图DC      : 截图DC  = 0
   Function = FALSE ' 返回 TRUE 阻止关闭窗口。
End Function

'[Form1.Picture1]事件 : 鼠标离开控件
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_Picture1_WM_MouseLeave(hWndForm As hWnd, hWndControl As hWnd)
   鼠标在   = 0
   鼠标按下 = 0
   Picture1.Refresh
End Sub

'[Form1.Picture1]事件 : 移动鼠标
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
'MouseFlags  MK_CONTROL   MK_LBUTTON     MK_MBUTTON     MK_RBUTTON    MK_SHIFT     MK_XBUTTON1       MK_XBUTTON2
''           CTRL键按下   鼠标左键按下   鼠标中键按下   鼠标右键按下  SHIFT键按下  第一个X按钮按下   第二个X按钮按下
'检查什么键按下用  If (MouseFlags And MK_CONTROL)<>0 Then CTRL键按下
'xPos yPos   当前鼠标位置，相对于控件。就是在控件里的坐标。
Sub Form1_Picture1_WM_MouseMove(hWndForm As hWnd, hWndControl As hWnd, MouseFlags As Long, xPos As Long, yPos As Long)
   Dim aa As Long = 获取鼠标位置(xPos, yPos)
   鼠标x = xPos
   鼠标y = yPos
   
   If (MouseFlags And MK_LBUTTON) <> 0 And 鼠标按下 <> 0 Then
      If 鼠标在 > 0 And 鼠标在 < 1000 Then
         Dim px As Long = xPos - 鼠标在x, py As Long = yPos - 鼠标在y
         If px = 0 And py = 0 Then Return
         If i元素 = -1 And 鼠标在 = 1 Then
            底图x += px
            底图y += py
               鼠标在x = xPos
               鼠标在y = yPos
               Picture1.Refresh 
         Else
            Dim i As Long = 鼠标在 -2, ji As Long
            If i < 0 Then i = 0

            If i <= UBound(t调节点) Then
               
               文件被修改 = 1
               YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_保存) = 0
               If t调节点(i).b = 1 Then
                  If t调节点(i).tx - t调节点(i -1).tx < 10 And px < 1 Then px = 0
                  If t调节点(i).ty - t调节点(i -1).ty < 10 And py < 1 Then py = 0
               End If
               t调节点(i).tx += px
               t调节点(i).ty += py
               t调节点(i).tw += px
               t调节点(i).th += py
               Dim As Long pw = 返回编辑区尺寸(), p = DpiScaleI(10), bx = t调节点(i).x, by = t调节点(i).y
               If px Then t调节点(i).x = (t调节点(i).tx + p) / pw * 1000
               If py Then t调节点(i).y = (t调节点(i).ty + p) / pw * 1000
               If (MouseFlags And MK_CONTROL) <> 0 And t调节点(i).b <> 4 Then
                  If px Then t调节点(i).x = Int(t调节点(i).x / 10) * 10 + IIf(t调节点(i).x Mod 10 > 5, 10, 0)
                  If py Then t调节点(i).y = Int(t调节点(i).y / 10) * 10 + IIf(t调节点(i).y Mod 10 > 5, 10, 0)
               ElseIf 网格显示 <> 0 And t调节点(i).b < 2 Then
                  '网格吸附效果
                  If px Then
                     If (t调节点(i).x Mod 100) < 10 Then
                        t调节点(i).x -= t调节点(i).x Mod 100
                     ElseIf t调节点(i).x Mod 100 > 90 Then
                        t调节点(i).x += 100 - (t调节点(i).x Mod 100)
                     End If
                  End If
                  If py Then
                     If t调节点(i).y Mod 100 < 10 Then
                        t调节点(i).y -= t调节点(i).y Mod 100 : ji = 1
                     ElseIf t调节点(i).y Mod 100 > 90 Then
                        t调节点(i).y += 100 - (t调节点(i).y Mod 100) : ji = 1
                     End If
                  End If
               End If
               
               If i元素 >= 0 And i元素 <= UBound(t元素列表) Then
                  Select Case Left(t元素列表(i元素), 1)
                     Case "a", "f", "g"
                        '线条 <a,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x1,y1,x2,y2,....xn,yn>
                        '贝塞尔曲线 <f,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x1,y1,x2,y2,x3,y3,x4,y4...[xn,yn]>
                        '曲线 <g,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,曲度,x1,y1,x2,y2,....xn,yn>
                        If i = 0 Then
                           If (MouseFlags And MK_CONTROL) = 0 Then
                              For ji = 1 To UBound(t调节点)
                                 t调节点(ji).tx += px
                                 t调节点(ji).ty += py
                                 t调节点(ji).tw += px
                                 t调节点(ji).th += py
                                 If px Then t调节点(ji).x = (t调节点(ji).tx + p) / pw * 1000
                                 If py Then t调节点(ji).y = (t调节点(ji).ty + p) / pw * 1000
                                 t对象列表(ji -1) = Int(t调节点(ji).x) & "," & Int(t调节点(ji).y)
                                 If i对象 = ji -1 Then
                                    If px Then YFtext1(0).UpValue = t调节点(ji).x
                                    If py Then YFtext1(1).UpValue = t调节点(ji).y
                                 End If
                              Next
                           End If
                        Else
                           t对象列表(i -1) = Int(t调节点(i).x) & "," & Int(t调节点(i).y)
                           If i对象 = i -1 Then
                              If px Then YFtext1(0).UpValue = t调节点(i).x
                              If py Then YFtext1(1).UpValue = t调节点(i).y
                           End If
                           If Left(t元素列表(i元素), 1) = "f" Then
                              '贝塞尔曲线,调了节点后，需要带动前后控制点也要移动
                              If t调节点(i).b = 0 Then
                                 For ni As Long = 0 To 1
                                    If i > 1 Then
                                       If t调节点(i -1).b = 3 Then
                                          t调节点(i -1).tx += px
                                          t调节点(i -1).ty += py
                                          t调节点(i -1).tw += px
                                          t调节点(i -1).th += py
                                          If px Then t调节点(i -1).x += t调节点(i).x - bx ' (t调节点(i -1).tx + p) / pw * 1000
                                          If py Then t调节点(i -1).y += t调节点(i).y - by '(t调节点(i -1).ty + p) / pw * 1000
                                          t对象列表(i -1 -1) = Int(t调节点(i -1).x) & "," & Int(t调节点(i -1).y)
                                          If i对象 = i -1 -1 Then
                                             If px Then YFtext1(0).UpValue = t调节点(i -1).x
                                             If py Then YFtext1(1).UpValue = t调节点(i -1).y
                                          End If
                                       End If
                                    End If
                                    
                                    If i < UBound(t调节点) Then
                                       If t调节点(i + 1).b = 2 Then
                                          t调节点(i + 1).tx += px
                                          t调节点(i + 1).ty += py
                                          t调节点(i + 1).tw += px
                                          t调节点(i + 1).th += py
                                          If px Then t调节点(i + 1).x += t调节点(i).x - bx '  (t调节点(i + 1).tx + p) / pw * 1000
                                          If py Then t调节点(i + 1).y += t调节点(i).y - by ' (t调节点(i + 1).ty + p) / pw * 1000
                                          t对象列表(i + 1 -1) = Int(t调节点(i + 1).x) & "," & Int(t调节点(i + 1).y)
                                          If i对象 = i + 1 -1 Then
                                             If px Then YFtext1(0).UpValue = t调节点(i + 1).x
                                             If py Then YFtext1(1).UpValue = t调节点(i + 1).y
                                          End If
                                       End If
                                    End If
                                    If Check6(1).Value = False Then Exit For
                                    If ni = 0 Then
                                       Dim ki As Long = i
                                       If i = 1 Then
                                          i = UBound(t调节点)
                                       ElseIf i = UBound(t调节点) Then
                                          i = 1
                                       Else
                                          Exit For
                                       End If
                                       t调节点(i)      = t调节点(ki)
                                       t对象列表(i -1) = Int(t调节点(i).x) & "," & Int(t调节点(i).y)
                                    End If
                                 Next
                              ElseIf t调节点(i).b = 2 Or t调节点(i).b = 3 Then
                                 Dim 圆心i As Long, 改变i As Long
                                 If t调节点(i).b = 2 Then
                                    圆心i = i -1
                                    改变i = i -2
                                    If 改变i < 1 AndAlso Check6(1).Value <> 0 Then
                                       改变i = UBound(t调节点) -1
                                    End If
                                 Else
                                    圆心i = i + 1
                                    改变i = i + 2
                                    If 改变i > UBound(t调节点) AndAlso Check6(1).Value <> 0 Then
                                       改变i = 2
                                    End If
                                 End If
                                 If 改变i > 0 And 改变i < UBound(t调节点) Then
                                    If t调节点(改变i).b = 3 Or t调节点(改变i).b = 2 Then
                                       If (MouseFlags And MK_SHIFT) <> 0 Then '圆角方式调整
                                          Dim jd As Single = Atan2(t调节点(i).y - t调节点(圆心i).Y, t调节点(i).x - t调节点(圆心i).x) '角度
                                          jd += 3.1415926 '翻转180度
                                          If jd > 2 * 3.1415926 Then jd -= 2 * 3.1415926
                                          Dim bj As Single = sqr((t调节点(改变i).x - t调节点(圆心i).x) ^ 2 + (t调节点(改变i).y - t调节点(圆心i).Y) ^ 2) '半径
                                          t调节点(改变i).x    = t调节点(圆心i).x + bj * Cos(jd)
                                          t调节点(改变i).y    = t调节点(圆心i).y + bj * Sin(jd)
                                          t调节点(改变i).tx   = -99999
                                          t调节点(改变i).ty   = -99999
                                          t对象列表(改变i -1) = Int(t调节点(改变i).x) & "," & Int(t调节点(改变i).y)
                                          If i对象 = 改变i -1 Then
                                             If px Then YFtext1(0).UpValue = t调节点(改变i).x
                                             If py Then YFtext1(1).UpValue = t调节点(改变i).y
                                          End If
                                       End If
                                    End If
                                 End If
                              End If
                           End If
                           计算多节点中间位置()
                        End If
                     Case "b", "c", "d", "e", "i" '
                        '矩形 <b,填充色,线框色,线粗,圆角w,圆角h,圆角位置1 Or 2 Or 4 Or 8（1 左上角.2 左下角.4 右上角.8 右下角）,x,y,w,h>
                        '椭圆 <c,填充色,线框色,线粗,x,y,w,h>
                        '圆弧 <d,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x,y,w,h,相对于x轴的起始角度(0度为原的右边中部),顺时针转了多少角度>
                        '多边形 <e,填充色,线框色,线粗,圆角w,圆角h,折线拐角,几个边,旋转角度,x,y,w,h>
                        '描绘文字 <i,填充色,线框色,线粗,折线拐角,尺寸,加粗,倾斜,下划线,删除线,x,y,长度(字体名和文字总长度),字体名,文字>
                        
                        If i = 1 Or i = 0 Then '
                           If (MouseFlags And MK_CONTROL) = 0 Or i = 1 Then
                              For ji = 0 To UBound(t调节点)
                                 If ji <> i Then
                                    t调节点(ji).tx += px
                                    t调节点(ji).ty += py
                                    t调节点(ji).tw += px
                                    t调节点(ji).th += py
                                    If px Then t调节点(ji).x = (t调节点(ji).tx + p) / pw * 1000
                                    If py Then t调节点(ji).y = (t调节点(ji).ty + p) / pw * 1000
                                 End If
                                 If ji = 1 Then
                                    If px Then YFtext1(0).UpValue = t调节点(ji).x
                                    If py Then YFtext1(1).UpValue = t调节点(ji).y
                                 End If
                                 
                              Next
                           End If
                        Else
                           If i = 2 Then
                              If px Then YFtext1(2).UpValue = t调节点(2).x - t调节点(1).x
                              If py Then YFtext1(3).UpValue = t调节点(2).y - t调节点(1).y
                              If px Then t调节点(0).x       = t调节点(1).x + (t调节点(2).x - t调节点(1).x) / 2
                              If py Then t调节点(0).y       = t调节点(1).y + (t调节点(2).y - t调节点(1).y) / 2
                              If (MouseFlags And MK_SHIFT) <> 0 Then '宽高同步
                                 If t调节点(2).y < t调节点(2).x Then
                                    t调节点(2).y       = t调节点(1).y + (t调节点(2).x - t调节点(1).x)
                                    YFtext1(3).UpValue = t调节点(2).y - t调节点(1).y
                                    t调节点(0).y       = t调节点(1).y + (t调节点(2).y - t调节点(1).y) / 2
                                 else
                                    t调节点(2).x       = t调节点(1).x + (t调节点(2).y - t调节点(1).y)
                                    YFtext1(2).UpValue = t调节点(2).x - t调节点(1).x
                                    t调节点(0).x       = t调节点(1).x + (t调节点(2).x - t调节点(1).x) / 2
                                 end if
                                 t调节点(2).ty = -99999
                                 t调节点(2).tx = -99999
                                 
                                 
                              End If
                              
                              If UBound(t调节点) = 4 Then
                                 Dim As Single rx    = (t调节点(2).x - t调节点(1).x) / 2         + 50, ry = (t调节点(2).y - t调节点(1).y) / 2 + 50
                                 Dim As Single k角度 = Val(YFtext1(4).Text)          * 3.1415926 / 180
                                 Dim As Single n角度 = k角度 + Val(YFtext1(5).Text) * 3.1415926 / 180
                                 If ry > rx Then rx = ry
                                 t调节点(3).x  = t调节点(0).x + rx * Cos(k角度)
                                 t调节点(3).y  = t调节点(0).y + rx * Sin(k角度)
                                 t调节点(3).tx = -99999
                                 t调节点(3).ty = -99999
                                 t调节点(4).x  = t调节点(0).x + rx * Cos(n角度)
                                 t调节点(4).y  = t调节点(0).y + rx * Sin(n角度)
                                 t调节点(4).tx = -99999
                                 t调节点(4).ty = -99999
                              End If
                           ElseIf i = 3 Or i = 4 Then
                              Dim jd As Single
                              jd = Atan2(t调节点(i).y - t调节点(0).Y, t调节点(i).x - t调节点(0).x) * 180 / 3.1415926
                              If jd < 0 Then jd += 360
                              Dim kd As Single = Val(YFtext1(4).Text)
                              Dim nd As Single = Val(YFtext1(5).Text)
                              if i = 3 then
                                 nd = nd - (jd - kd)
                                 kd = jd
                                 YFtext1(4).UpValue = kd
                                 YFtext1(5).UpValue = nd
                              Else
                                 'kd = kd + (jd - nd)
                                 nd = jd - kd
                                 If nd < 0 Then nd += 360
                                 'YFtext1(4).UpValue = kd
                                 YFtext1(5).UpValue = nd
                              End If
                              Dim As Single rx    = (t调节点(2).x - t调节点(1).x) / 2 + 50, ry = (t调节点(2).y - t调节点(1).y) / 2 + 50
                              Dim As Single k角度 = kd    * 3.1415926 / 180
                              Dim As Single n角度 = k角度 + nd        * 3.1415926 / 180
                              If ry > rx Then rx = ry
                              If i <> 3 Then
                                 t调节点(3).x  = t调节点(0).x + rx * Cos(k角度)
                                 t调节点(3).y  = t调节点(0).y + rx * Sin(k角度)
                                 t调节点(3).tx = -99999
                                 t调节点(3).ty = -99999
                              End If
                              if i <> 4 then
                                 t调节点(4).x  = t调节点(0).x + rx * Cos(n角度)
                                 t调节点(4).y  = t调节点(0).y + rx * Sin(n角度)
                                 t调节点(4).tx = -99999
                                 t调节点(4).ty = -99999
                              End If
                              
                           End If
                           t调节点(0).tx = -99999
                           t调节点(0).ty = -99999
                        End If
                     Case "h" '路径 <h,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,n,x1,y1,x2,y2,x3,y3,x4,y4...[xn,yn]>
                        If i = 0 Then
                           If (MouseFlags And MK_CONTROL) = 0 Then
                              For ji = 1 To UBound(t调节点)
                                 If t调节点(ji).b = 4 Then
                                    
                                 Else
                                    t调节点(ji).tx += px
                                    t调节点(ji).ty += py
                                    t调节点(ji).tw += px
                                    t调节点(ji).th += py
                                    If px Then t调节点(ji).x = (t调节点(ji).tx + p) / pw * 1000
                                    If py Then t调节点(ji).y = (t调节点(ji).ty + p) / pw * 1000
                                    t对象列表(ji -1) = Int(t调节点(ji).x) & "," & Int(t调节点(ji).y)
                                    If i对象 = ji -1 Then
                                       If px Then YFtext1(0).UpValue = t调节点(ji).x
                                       If py Then YFtext1(1).UpValue = t调节点(ji).y
                                    End If
                                 End If
                              Next
                           end if
                        Else
                           t对象列表(i -1) = Int(t调节点(i).x) & "," & Int(t调节点(i).y)
                           If i对象 = i -1 Then
                              If px Then YFtext1(0).UpValue = t调节点(i).x
                              If py Then YFtext1(1).UpValue = t调节点(i).y
                           End If
                           
                           If t调节点(i).b = 0 Then
                              
                              If i > 1 Then
                                 If t调节点(i -1).b = 3 Then
                                    t调节点(i -1).tx += px
                                    t调节点(i -1).ty += py
                                    t调节点(i -1).tw += px
                                    t调节点(i -1).th += py
                                    
                                    If px Then t调节点(i -1).x += t调节点(i).x - bx ' (t调节点(i -1).tx + p) / pw * 1000
                                    If py Then t调节点(i -1).y += t调节点(i).x - bx ' (t调节点(i -1).ty + p) / pw * 1000
                                    t对象列表(i -1 -1) = Int(t调节点(i -1).x) & "," & Int(t调节点(i -1).y)
                                    If i对象 = i -1 -1 Then
                                       If px Then YFtext1(0).UpValue = t调节点(i -1).x
                                       If py Then YFtext1(1).UpValue = t调节点(i -1).y
                                    End If
                                 End If
                              End If
                              
                              If i + 2 <= UBound(t调节点) Then
                                 If t调节点(i + 1).b = 4 And t调节点(i + 2).b = 2 Then
                                    t调节点(i + 2).tx += px
                                    t调节点(i + 2).ty += py
                                    t调节点(i + 2).tw += px
                                    t调节点(i + 2).th += py
                                    
                                    If px Then t调节点(i + 2).x += t调节点(i).x - bx ' (t调节点(i + 2).tx + p) / pw * 1000
                                    If py Then t调节点(i + 2).y += t调节点(i).y - by ' (t调节点(i + 2).ty + p) / pw * 1000
                                    t对象列表(i + 2 -1) = Int(t调节点(i + 2).x) & "," & Int(t调节点(i + 2).y)
                                    If i对象 = i + 2 -1 Then
                                       If px Then YFtext1(0).UpValue = t调节点(i + 2).x
                                       If py Then YFtext1(1).UpValue = t调节点(i + 2).y
                                    End If
                                 End If
                              End If
                           ElseIf t调节点(i).b = 2 Then
                              If i -3 > 0 Then
                                 If t调节点(i -3).b = 3 Then
                                    If (MouseFlags And MK_SHIFT) <> 0 Then '圆角方式调整
                                       Dim jd As Single = Atan2(t调节点(i).y - t调节点(i -2).Y, t调节点(i).x - t调节点(i -2).x) '角度
                                       jd += 3.1415926 '翻转180度
                                       If jd > 2 * 3.1415926 Then jd -= 2 * 3.1415926
                                       Dim bj As Single = sqr((t调节点(i -3).x - t调节点(i -2).x) ^ 2 + (t调节点(i -3).y - t调节点(i -2).Y) ^ 2) '半径
                                       t调节点(i -3).x    = t调节点(i -2).x + bj * Cos(jd)
                                       t调节点(i -3).y    = t调节点(i -2).y + bj * Sin(jd)
                                       t调节点(i -3).tx   = -99999
                                       t调节点(i -3).ty   = -99999
                                       t对象列表(i -3 -1) = Int(t调节点(i -3).x) & "," & Int(t调节点(i -3).y)
                                       If i对象 = i -3 -1 Then
                                          If px Then YFtext1(0).UpValue = t调节点(i -3).x
                                          If py Then YFtext1(1).UpValue = t调节点(i -3).y
                                       End If
                                    End If
                                 End If
                              End If
                           ElseIf t调节点(i).b = 3 Then
                              If i + 3 <= UBound(t调节点) Then
                                 If t调节点(i + 3).b = 2 Then
                                    If (MouseFlags And MK_SHIFT) <> 0 Then '圆角方式调整
                                       Dim jd As Single = Atan2(t调节点(i).y - t调节点(i + 1).Y, t调节点(i).x - t调节点(i + 1).x) '角度
                                       jd += 3.1415926 '翻转180度
                                       If jd > 2 * 3.1415926 Then jd -= 2 * 3.1415926
                                       Dim bj As Single = sqr((t调节点(i + 3).x - t调节点(i + 1).x) ^ 2 + (t调节点(i + 3).y - t调节点(i + 1).Y) ^ 2) '半径
                                       t调节点(i + 3).x    = t调节点(i + 1).x + bj * Cos(jd)
                                       t调节点(i + 3).y    = t调节点(i + 1).y + bj * Sin(jd)
                                       t调节点(i + 3).tx   = -99999
                                       t调节点(i + 3).ty   = -99999
                                       t对象列表(i + 3 -1) = Int(t调节点(i + 3).x) & "," & Int(t调节点(i + 3).y)
                                       If i对象 = i + 3 -1 Then
                                          If px Then YFtext1(0).UpValue = t调节点(i + 3).x
                                          If py Then YFtext1(1).UpValue = t调节点(i + 3).y
                                       End If
                                    End If
                                 End If
                              End If
                              
                           End If
                           
                           
                           
                           计算多节点中间位置()
                        End If
                        
                  End Select
                  合成元素数据()
                  Picture2.Refresh
                  YFList1.Refresh
               End If
               鼠标在x = xPos
               鼠标在y = yPos
               Picture1.Refresh
            End If
         end if
      End If
   Else
      If aa <> 鼠标在 Then
         鼠标在 = aa
         
      End If
      Picture1.Refresh
   End If
   
   
End Sub
Function 获取鼠标位置(xPos As Long, yPos As Long) As Long
   Dim i As Long, u As Long = UBound(t调节点)
   If u = -1 Then Return 1
   Dim w As Long, h As Long
   FF_Control_GetSize(Picture1.hWnd, w, h)
   w -= DpiScaleI(100)
   h -= DpiScaleI(100)
   Dim As Long pw, tx, ty
   pw = IIf(w > h, h, w) *视图比例
   tx = (w - pw) / 2 + DpiScaleI(50)
   ty = (h - pw) / 2 + DpiScaleI(50)
   
   For i = u To 0 Step -1
      If t调节点(i).b <> 4 And t调节点(i).b > 0 Then
         If xPos > t调节点(i).tx + tx And xPos < t调节点(i).tw + tx And yPos > t调节点(i).ty + ty And yPos < t调节点(i).th + ty Then Return i + 2
      End If
   Next
   For i = u To 0 Step -1
      If t调节点(i).b <> 4 And t调节点(i).b = 0 Then
         If xPos > t调节点(i).tx + tx And xPos < t调节点(i).tw + tx And yPos > t调节点(i).ty + ty And yPos < t调节点(i).th + ty Then Return i + 2
      End If
   Next
   
   Function = 1
End Function

'[Form1.Picture1]事件 : 按下鼠标左键
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
'MouseFlags  MK_CONTROL   MK_LBUTTON     MK_MBUTTON     MK_RBUTTON    MK_SHIFT     MK_XBUTTON1       MK_XBUTTON2
''           CTRL键按下   鼠标左键按下   鼠标中键按下   鼠标右键按下  SHIFT键按下  第一个X按钮按下   第二个X按钮按下
'检查什么键按下用  If (MouseFlags And MK_CONTROL)<>0 Then CTRL键按下
'xPos yPos   当前鼠标位置，相对于控件。就是在控件里的坐标。
Sub Form1_Picture1_WM_LButtonDown(hWndForm As hWnd, hWndControl As hWnd, MouseFlags As Long, xPos As Long, yPos As Long)
   鼠标在x  = xPos
   鼠标在y  = yPos
   鼠标在   = 获取鼠标位置(xPos, yPos)
   鼠标按下 = 1
   Dim rc As Rect
   GetWindowRect(hWndControl, @rc)
   Dim w As Long = rc.right - rc.left, h As Long = rc.bottom - rc.top
   w -= DpiScaleI(100)
   h -= DpiScaleI(100)
   Dim As Long pw, tx, ty
   pw = IIf(w > h, h, w)
   pw *= 视图比例
   tx = (w - pw) / 2 + DpiScaleI(50)
   ty = (h - pw) / 2 + DpiScaleI(50)
   
   
   SetCapture hWndControl
   ClipCursor(@rc)
   Dim u As Long = UBound(t元素列表)
   
   If i工具 > 0 And 鼠标在 = 1 Then
      Dim aa As String, n As StringW, k As String
      If i元素 >= 0 And i元素 <= u Then k = Left(t元素列表(i元素), 1)
      Select Case i工具
         Case Form1_YFbunGroup3_直线 '
            If k <> "a" Then
               aa = "a00001@0000000" & 整数转V数((xPos - tx) / pw * 1000) & 整数转V数((yPos - ty) / pw * 1000)
               n  = WStr("线条")
               新增绘图元素(aa, n)
            Else
               鼠标在 = 新增对象坐标((xPos - tx) / pw * 1000, (yPos - ty) / pw * 1000) + 3
            End If
         Case Form1_YFbunGroup3_曲线 '
            If k <> "g" Then
               aa = "g00001@0000000TF" & 整数转V数((xPos - tx) / pw * 1000) & 整数转V数((yPos - ty) / pw * 1000)
               n  = WStr("曲线")
               新增绘图元素(aa, n)
            Else
               鼠标在 = 新增对象坐标((xPos - tx) / pw * 1000, (yPos - ty) / pw * 1000) + 3
            End If
         Case Form1_YFbunGroup3_矩形 '
            aa = "b01@00?" & 整数转V数((xPos - tx) / pw * 1000) & 整数转V数((yPos - ty) / pw * 1000) & "VnUs"
            n  = WStr("矩形")
            新增绘图元素(aa, n)
            YFbunGroup3.ButtonState(i工具) = 0
            YFbunGroup3.ButtonState(0)     = 10
            i工具 = 0
         Case Form1_YFbunGroup3_椭圆 '
            aa = "c01@" & 整数转V数((xPos - tx) / pw * 1000) & 整数转V数((yPos - ty) / pw * 1000) & "VnVn"
            n  = WStr("椭圆")
            新增绘图元素(aa, n)
            YFbunGroup3.ButtonState(i工具) = 0
            YFbunGroup3.ButtonState(0)     = 10
            i工具 = 0
         Case Form1_YFbunGroup3_圆弧 '
            aa = "d00001@0000000" & 整数转V数((xPos - tx) / pw * 1000) & 整数转V数((yPos - ty) / pw * 1000) & "VnVn0VZ"
            n  = WStr("圆弧")
            新增绘图元素(aa, n)
            YFbunGroup3.ButtonState(i工具) = 0
            YFbunGroup3.ButtonState(0)     = 10
            i工具 = 0
         Case Form1_YFbunGroup3_多边形 '
            aa = "e01@00050" & 整数转V数((xPos - tx) / pw * 1000) & 整数转V数((yPos - ty) / pw * 1000) & "VnVn"
            n  = WStr("多边形")
            新增绘图元素(aa, n)
            YFbunGroup3.ButtonState(i工具) = 0
            YFbunGroup3.ButtonState(0)     = 10
            i工具 = 0
         Case Form1_YFbunGroup3_贝塞尔 '
            If k <> "f" Then
               aa = "f00001@0000000" & 整数转V数((xPos - tx) / pw * 1000) & 整数转V数((yPos - ty) / pw * 1000)
               n  = WStr("贝塞尔曲线")
               新增绘图元素(aa, n)
            Else
               鼠标在 = 新增贝塞尔((xPos - tx) / pw * 1000, (yPos - ty) / pw * 1000) + 1
               
            End If
         'Case Form1_YFbunGroup3_新路径 '
         '   aa = "h00001@0000000" & 整数转V数((xPos - tx) / pw * 1000) & 整数转V数((yPos - ty) / pw * 1000)
         '   n  = WStr("路径")
         '   新增绘图元素(aa, n)
         '   YFbunGroup3.ButtonState(i工具) = 0
         '   YFbunGroup3.ButtonState(0)     = 10
         '   i工具 = 0
         Case Form1_YFbunGroup3_路径直线 '
            If k <> "h" Then
               aa = "h00001@0000000" & 整数转V数((xPos - tx) / pw * 1000) & 整数转V数((yPos - ty) / pw * 1000)
               n  = WStr("路径")
               新增绘图元素(aa, n)
            Else
               鼠标在 = 新增路径元素(0, (xPos - tx) / pw * 1000, (yPos - ty) / pw * 1000) + 2
            End If
         Case Form1_YFbunGroup3_路径曲线 '
            If k <> "h" Then
               aa = "h00001@0000000" & 整数转V数((xPos - tx) / pw * 1000) & 整数转V数((yPos - ty) / pw * 1000)
               n  = WStr("路径")
               新增绘图元素(aa, n)
            Else
               鼠标在 = 新增路径元素(1, (xPos - tx) / pw * 1000, (yPos - ty) / pw * 1000) + 2
            End If
         Case Form1_YFbunGroup3_路径贝塞尔 '
            If k <> "h" Then
               aa = "h00001@0000000" & 整数转V数((xPos - tx) / pw * 1000) & 整数转V数((yPos - ty) / pw * 1000)
               n  = WStr("路径")
               新增绘图元素(aa, n)
            Else
               鼠标在 = 新增路径元素(2, (xPos - tx) / pw * 1000, (yPos - ty) / pw * 1000) + 2
            End If
         Case Form1_YFbunGroup3_路径矩形 '
            If k <> "h" Then
               aa = "h00001@0000000" & 整数转V数((xPos - tx) / pw * 1000) & 整数转V数((yPos - ty) / pw * 1000)
               n  = WStr("路径")
               新增绘图元素(aa, n)
            Else
               鼠标在 = 新增路径元素(3, (xPos - tx) / pw * 1000, (yPos - ty) / pw * 1000) + 2
            End If
            YFbunGroup3.ButtonState(i工具) = 0
            YFbunGroup3.ButtonState(0)     = 10
            i工具 = 0
         Case Form1_YFbunGroup3_路径椭圆 '
            If k <> "h" Then
               aa = "h00001@0000000" & 整数转V数((xPos - tx) / pw * 1000) & 整数转V数((yPos - ty) / pw * 1000)
               n  = WStr("路径")
               新增绘图元素(aa, n)
            Else
               鼠标在 = 新增路径元素(4, (xPos - tx) / pw * 1000, (yPos - ty) / pw * 1000) + 2
            End If
            YFbunGroup3.ButtonState(i工具) = 0
            YFbunGroup3.ButtonState(0)     = 10
            i工具 = 0
         Case Form1_YFbunGroup3_文字 '
            aa = "i1002UA0000" & 整数转V数((xPos - tx) / pw * 1000) & 整数转V数((yPos - ty) / pw * 1000) & "4&,Abc"
            n  = WStr("文字")
            新增绘图元素(aa, n)
            YFbunGroup3.ButtonState(i工具) = 0
            YFbunGroup3.ButtonState(0)     = 10
            i工具 = 0
      End Select
      
      
      Return
   End If
   
   
   If u > -1 And 鼠标在 = 1 Then
      Dim memdc As yGDI
      memdc.memdc(100, 100, 1)
      xPos -= tx
      yPos -= ty
      '判断鼠标点击了那个图元素
      Dim i As Long, si As Long = -1, fi As Long = -1, c As Long, k As Single = 100 / pw
      For i = u To 0 Step -1
         fi = -1
         memdc.Cls BGR(255, 255, 255)
         memdc.GpDrawVectorIcon(0, 0, 100, 100, Utf8toStr(t元素列表(i)))
         c = memdc.GetPixel(xPos *k, yPos *k)
         'Print i,Hex(c),t元素列表(i)
         If c <> &HFFFFFF And c <> &HFFFFFFFF Then
            si = i
            Exit For
         End If
      Next
      
      If si <> i元素 Then
         If si <> -1 Then si = u - si
         'Print "ok", si
         YFList2.ListIndex = si
         Form1_YFList2_SelChange(0, 0, si)
         Picture1.Refresh
         YFList2.Refresh
      End If
      If fi <> -1 Then
         If fi <> i对象 Then
            YFList4.ListIndex = fi
            Form1_YFList4_SelChange(0, 0, fi)
            Picture1.Refresh
         End If
      End If
   Else
      u = 鼠标在 -2
      If u >= 1 And u <= UBound(t调节点) Then
         If YFList4.Visible Then
            u -= 1
            if u <> i对象 then
               YFList4.ListIndex = u
               Form1_YFList4_SelChange(0, 0, u)
            End If
         End If
      End If
   End If
End Sub

'[Form1.Picture1]事件 : 释放鼠标左键
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
'MouseFlags  MK_CONTROL   MK_LBUTTON     MK_MBUTTON     MK_RBUTTON    MK_SHIFT     MK_XBUTTON1       MK_XBUTTON2
''           CTRL键按下   鼠标左键按下   鼠标中键按下   鼠标右键按下  SHIFT键按下  第一个X按钮按下   第二个X按钮按下
'检查什么键按下用  If (MouseFlags And MK_CONTROL)<>0 Then CTRL键按下
'xPos yPos   当前鼠标位置，相对于控件。就是在控件里的坐标。
Sub Form1_Picture1_WM_LButtonUp(hWndForm As hWnd, hWndControl As hWnd, MouseFlags As Long, xPos As Long, yPos As Long)
   ClipCursor(NULL)
   ReleaseCapture()
   鼠标在   = 1
   鼠标按下 = 0
End Sub
Sub 计算多节点中间位置()
   Dim u As Long = UBound(t调节点)
   Dim As Long   i
   Dim As Single mx = -99999, nx = 9999, my = -99999, ny = 9999
   If u > 0 Then
      For i = 1 To u
         If t调节点(i).b = 0 Then
            If t调节点(i).x > mx Then mx = t调节点(i).x
            If t调节点(i).y > my Then my = t调节点(i).y
            If t调节点(i).x < nx Then nx = t调节点(i).x
            If t调节点(i).y < ny Then ny = t调节点(i).y
         End If
      Next
      t调节点(0).x  = (mx - nx) / 2 + nx
      t调节点(0).y  = (my - ny) / 2 + ny
      t调节点(0).tx = -99999
      t调节点(0).ty = -99999
      
   End If
End Sub

'[Form1.YFswitcher1]事件 : 开关状态已经改变
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
'newState    新的状态 0=关 非0=开
Sub Form1_YFswitcher1_Change(hWndForm As hWnd, hWndControl As hWnd, newState As Long)
   网格显示 = YFswitcher1.Value
   Picture1.Refresh
   INI_SetKey(App.Path & "vicoset.ini", "setup", "wgxs", WStr(网格显示))
End Sub

'[Form1.YFtext2]事件 : 左边标签鼠标按下
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
'MouseFlags  MK_CONTROL   MK_LBUTTON     MK_MBUTTON     MK_RBUTTON    MK_SHIFT     MK_XBUTTON1       MK_XBUTTON2
''           CTRL键按下   鼠标左键按下   鼠标中键按下   鼠标右键按下  SHIFT键按下  第一个X按钮按下   第二个X按钮按下
'检查什么键按下用  If (MouseFlags And MK_CONTROL)<>0 Then CTRL键按下
'xPos yPos   当前鼠标位置，相对于控件。就是在控件里的坐标。
Sub Form1_YFtext2_Right_LButtonDown(hWndForm As hWnd, hWndControl As hWnd, MouseFlags As Long, xPos As Long, yPos As Long)
   AfxSetClipboardText(YFtext2.Text)
   
End Sub

'[Form1.Picture1]事件 : 旋转鼠标滚轮
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
'MouseFlags  MK_CONTROL   MK_LBUTTON     MK_MBUTTON     MK_RBUTTON    MK_SHIFT     MK_XBUTTON1       MK_XBUTTON2
''           CTRL键按下   鼠标左键按下   鼠标中键按下   鼠标右键按下  SHIFT键按下  第一个X按钮按下   第二个X按钮按下
'检查什么键按下用  If (MouseFlags And MK_CONTROL)<>0 Then CTRL键按下
'WheelDelta 为旋转的距离，以倍数或分度表示，通常为120（具体看WIN系统设置），正值 120 表示向前旋转，负值 -120 表示向后旋转
'xPos yPos   当前鼠标位置，相对于屏幕左上角的坐标。
Sub Form1_Picture1_WM_MouseWheel(hWndForm As hWnd, hWndControl As hWnd, WheelDelta As Long, MouseFlags As Long, xPos As Long, yPos As Long)
   视图比例 += WheelDelta / 12000
   If 视图比例 < 0.1 Then 视图比例 = 0.1
   If 视图比例 > 3   Then 视图比例 = 3
   If UBound(t调节点) > 1 Then
      Dim i  As Long
      Dim pw As Long = 返回编辑区尺寸, d10 As Long = DpiScaleI(10), d20 As Long = DpiScaleI(20)
      For i = 0 To UBound(t调节点)
         If t调节点(i).b <> 4 Then
            t调节点(i).tx = t调节点(i).x  / 1000 *pw - d10
            t调节点(i).ty = t调节点(i).y  / 1000 *pw - d10
            t调节点(i).tw = t调节点(i).tx + d20
            t调节点(i).th = t调节点(i).ty + d20
         end if
      Next
   ElseIf UBound(t调节点) = 1 Then
      t调节点(1).tx = -99999
      t调节点(1).ty = -99999
      
   End If
   Picture1.Refresh
End Sub

'[Form1.Check4]事件 : 单击
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_Check4_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)
   If 代码修改中 Then Return
   合成元素数据()
   Dim a As Long = Check4.Value = False
   Combo1(0).Visible  = a
   Combo1(1).Visible  = a
   Label5(0).Visible  = a
   Label5(1).Visible  = a
   YFtext5(0).Visible = a
   YFtext5(1).Visible = a
   YFtext5(2).Visible = a
   YFtext5(3).Visible = a
   Check2.Visible     = a
   
End Sub

'[Form1.Combo3]事件 : 列表框中更改当前选择时
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_Combo3_CBN_SelChange(hWndForm As hWnd, hWndControl As hWnd)
   If 代码修改中 Then Return
   合成元素数据()
   
End Sub
Sub 创建恢复()
   If k恢复 Then Return
   
   If i恢复 + 1 > UBound(恢复记录) Then ReDim Preserve 恢复记录(i恢复 + 100)
   
   Static tt As ULong
   If GetTickCount - tt > 300 Then '恢复防抖，预防短时大量的恢复，比方拖动位置，重复调参数，打文字等等。
      恢复记录(i恢复) = t图标列表(i图标)
      i恢复           += 1
      u恢复           = i恢复
   End If
   tt = GetTickCount
   YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_恢复) = 0
   YFbunGroup5.ButtonText(Form1_YFbunGroup1_Button_恢复)  = WStr("恢复_") & i恢复
   YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_重做) = 20
   
End Sub
Sub 恢复操作()
   If i恢复 < 1 Then Return
   Dim a As Long, b As Long, i As Long
   i恢复 -= 1
   k恢复 = 1
   Swap t图标列表(i图标), 恢复记录(i恢复)
   t图标显示(i图标) = t图标列表(i图标)
   代码修改中       = 1
   YFtext2.Text     = Utf8toStringW(恢复记录(i恢复))
   加载图标(t图标列表(i图标))
   YFList1.Refresh
   代码修改中 = 0
   k恢复      = 0
   Picture1.Refresh
   Form1.Picture2.Refresh
   YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_恢复) = IIf(i恢复 > 0, 0, 20)
   YFbunGroup5.ButtonText(Form1_YFbunGroup1_Button_恢复)  = WStr("恢复_") & i恢复
   YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_重做) = IIf(i恢复 < u恢复, 0, 20)
   YFbunGroup5.ButtonText(Form1_YFbunGroup1_Button_重做)  = WStr("重做_") & u恢复 - i恢复
End Sub
Sub 重做操作()
   
   If i恢复 >= u恢复 Then Return
   Dim a As Long, b As Long, i As Long
   
   k恢复 = 1
   Swap t图标列表(i图标), 恢复记录(i恢复)
   't图标列表(i图标) = 恢复记录(i恢复)
   t图标显示(i图标) = t图标列表(i图标)
   代码修改中       = 1
   YFtext2.Text     = Utf8toStringW(恢复记录(i恢复))
   加载图标(t图标列表(i图标))
   YFList1.Refresh
   代码修改中 = 0
   k恢复      = 0
   Picture1.Refresh
   Form1.Picture2.Refresh
   
   i恢复 += 1
   YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_恢复) = IIf(i恢复 > 0, 0, 20)
   YFbunGroup5.ButtonText(Form1_YFbunGroup1_Button_恢复)  = WStr("恢复_") & i恢复
   YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_重做) = IIf(i恢复 < u恢复, 0, 20)
   YFbunGroup5.ButtonText(Form1_YFbunGroup1_Button_重做)  = WStr("重做_") & u恢复 - i恢复
End Sub
Function 返回编辑区尺寸() As Long
   Dim w As Long, h As Long, pw As Long
   FF_Control_GetSize(Picture1.hWnd, w, h)
   w        -= DpiScaleI(100)
   h        -= DpiScaleI(100)
   pw       = IIf(w > h, h, w)
   pw       *= 视图比例
   Function = pw
End Function

'[Form1.Picture1]事件 : 控件已经改变了大小
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
'fwSizeType = SIZE_MAXHIDE     SIZE_MAXIMIZED   SIZE_MAXSHOW    SIZE_MINIMIZED    SIZE_RESTORED
''            其他窗口最大化   窗口已最大化     其他窗口恢复    窗口已最小化      窗口已调整大小
'nWidth nHeight  是客户区大小，不是全部窗口大小。
Sub Form1_Picture1_WM_Size(hWndForm As hWnd, hWndControl As hWnd, fwSizeType As Long, nWidth As Long, nHeight As Long)
   
   If fwSizeType = SIZE_MINIMIZED Then Return
   'xxx.Move AfxScaleX(5), AfxScaleY(5), nWidth - AfxScaleX(10), nHeight - AfxScaleY(30)
   If UBound(t调节点) > 1 Then
      Dim i  As Long
      Dim pw As Long = 返回编辑区尺寸, d10 As Long = DpiScaleI(10), d20 As Long = DpiScaleI(20)
      For i = 0 To UBound(t调节点)
         If t调节点(i).b <> 4 Then
            t调节点(i).tx = t调节点(i).x  / 1000 *pw - d10
            t调节点(i).ty = t调节点(i).y  / 1000 *pw - d10
            t调节点(i).tw = t调节点(i).tx + d20
            t调节点(i).th = t调节点(i).ty + d20
            
         end if
      Next
   ElseIf UBound(t调节点) = 1 Then
      t调节点(1).tx = -99999
      t调节点(1).ty = -99999
   End If
   
End Sub

'[Form1.YFtext9]事件 : 文本已经被修改（修改前用 EN_UPDATE
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_YFtext9_EN_Change(hWndForm As hWnd, hWndControl As hWnd)
   If 代码修改中 Then Return
   Timer名称修改防抖.Enabled =False 
   Timer名称修改防抖.Enabled =True 

End Sub

'[Form1.YFtext10]事件 : 文本已经被修改（修改前用 EN_UPDATE
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_YFtext10_EN_Change(hWndForm As hWnd, hWndControl As hWnd)
   If 代码修改中 Then Return
   Dim nn As String = YFtext10.Text
   If InStr(nn, "+") Then
      MsgBox(hWndForm, WStr("由于“+”英文的加号用于绘图元素分割，") & vbCrLf & _
         WStr("因此不允许文字中出现“+”，你可以使用中文的加号。"), _
         MB_OK Or MB_ICONERROR Or MB_DEFBUTTON1 Or MB_APPLMODAL)
      
   End If
   合成元素数据()
   
End Sub

'[Form1.Check5]事件 : 单击
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_Check5_BN_Clicked(ControlIndex As Long, hWndForm As hWnd, hWndControl As hWnd)
   If 代码修改中 Then Return
   合成元素数据()
   
End Sub

'[Form1.YFtext7]事件 : 文本已经被修改（修改前用 EN_UPDATE
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_YFtext7_EN_Change(hWndForm As hWnd, hWndControl As hWnd)
   Form1.YFList1.Clear
   Dim i  As Long, f As Long
   Dim mm As StringW = YFtext7.Text
   Dim nn As StringW
   For i = 0 To UBound(t图标列表)
      If Left(t图标列表(i), 1) = "{" Then
         f = InStr(t图标列表(i), "}")
         If f = 0 Then f = Len(t图标列表(i)) + 1
         nn = Utf8toStringW(Mid(t图标列表(i), 2, f -2))
         If InStrW(nn, mm) Or LenW(mm) = 0 Then
            Form1.YFList1.AddItem nn, 0, i
         End If
      Else
         If LenW(mm) = 0 Then Form1.YFList1.AddItem "", 0, i
      End If
   Next
   
End Sub

'[Form1.UpDown1]事件 : 即将要更改值时
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
'pNMUD.iPos    有符号整数值，当前位置新值。
'pNMUD.iDelta  有符号整数值，位置变化值。
Function Form1_UpDown1_UDN_DeltaPos(ControlIndex As Long, hWndForm As hWnd, hWndControl As hWnd, pNMUD As NMUPDOWN) As LResult
   If ControlIndex = 0 then
      '缩放
      If i元素 = -1 Then
         底图比例 += pNMUD.iDelta / 200
         Picture1.Refresh
      ElseIf i元素 <= UBound(t元素列表) Then
         Dim bi As Single = pNMUD.iDelta / 200 + 1
         
         Dim i As Long
         If UBound(t调节点) > 1 Then
            If Left(t元素列表(i元素), 1) = "i" Then Return False '描绘文字 <i,填充色,线框色,线粗,折线拐角,尺寸,加粗,倾斜,下划线,删除线,x,y,长度(字体名和文字总长度),字体名,文字>
            Select Case Left(t元素列表(i元素), 1)
               Case "a", "f", "g", "h"
                  '线条 <a,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x1,y1,x2,y2,....xn,yn>
                  '贝塞尔曲线 <f,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x1,y1,x2,y2,x3,y3,x4,y4...[xn,yn]>
                  '曲线 <g,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,曲度,x1,y1,x2,y2,....xn,yn>
                  '路径 <h,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,n,x1,y1,x2,y2,x3,y3,x4,y4...[xn,yn]>
                  Dim As Single nx = 9999, ny = 9999, mx = -99999, my = -99999
                  For i = 1 To UBound(t调节点)
                     If t调节点(i).b = 0 Then
                        If t调节点(i).x > mx Then mx = t调节点(i).x
                        If t调节点(i).y > my Then my = t调节点(i).y
                        If t调节点(i).x < nx Then nx = t调节点(i).x
                        If t调节点(i).y < ny Then ny = t调节点(i).y
                     End If
                  Next
                  If mx - nx < 50 And my - ny < 50 And bi < 1     Then Return False '缩小的太小了，不允许
                  If mx - nx > 1000 And my - ny > 1000 And bi > 1 Then Return False '不允许
                  For i = 1 To UBound(t调节点)
                     If t调节点(i).b <> 4 Then
                        t调节点(i).x    = t调节点(0).x + (t调节点(i).x - t调节点(0).x) * bi
                        t调节点(i).y    = t调节点(0).y + (t调节点(i).y - t调节点(0).y) * bi
                        t对象列表(i -1) = Int(t调节点(i).x) & "," & Int(t调节点(i).y)
                        t调节点(i).tx   = -99999
                        t调节点(i).ty   = -99999
                        If i对象 = i -1 Then
                           YFtext1(0).UpValue = t调节点(i).x
                           YFtext1(1).UpValue = t调节点(i).y
                        End If
                     End If
                  Next
                  计算多节点中间位置()
               Case "b", "c", "d", "e"
                  '矩形 <b,填充色,线框色,线粗,圆角w,圆角h,圆角位置1 Or 2 Or 4 Or 8（1 左上角.2 左下角.4 右上角.8 右下角）,x,y,w,h>
                  '椭圆 <c,填充色,线框色,线粗,x,y,w,h>
                  '圆弧 <d,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x,y,w,h,相对于x轴的起始角度(0度为原的右边中部),顺时针转了多少角度>
                  '多边形 <e,填充色,线框色,线粗,圆角w,圆角h,折线拐角,几个边,旋转角度,x,y,w,h>
                  
                  If Abs(t调节点(2).x - t调节点(1).x) < 10 And Abs(t调节点(2).y - t调节点(1).y) < 10 And bi < 1     Then Return False '缩小的太小了，不允许
                  If Abs(t调节点(2).x - t调节点(1).x) > 1000 And Abs(t调节点(2).y - t调节点(1).y) > 1000 And bi > 1 Then Return False '缩小的太小了，不允许
                  For i = 1 To UBound(t调节点)
                     If t调节点(i).b = 6 Or t调节点(i).b = 7 Then
                        Dim As Single rx    = (t调节点(2).x - t调节点(1).x) / 2         + 50, ry = (t调节点(2).y - t调节点(1).y) / 2 + 50
                        Dim As Single k角度 = Val(YFtext1(4).Text)          * 3.1415926 / 180
                        Dim As Single n角度 = k角度 + Val(YFtext1(5).Text) * 3.1415926 / 180
                        If t调节点(i).b = 7 Then k角度 = n角度
                        If ry > rx Then rx = ry
                        t调节点(i).x = t调节点(0).x + rx * Cos(k角度)
                        t调节点(i).y = t调节点(0).y + rx * Sin(k角度)
                     else
                        t调节点(i).x = t调节点(0).x + (t调节点(i).x - t调节点(0).x) * bi
                        t调节点(i).y = t调节点(0).y + (t调节点(i).y - t调节点(0).y) * bi
                     end if
                     t调节点(i).tx = -99999
                     t调节点(i).ty = -99999
                  Next
                  YFtext1(0).UpValue = t调节点(1).x
                  YFtext1(1).UpValue = t调节点(1).y
                  YFtext1(2).UpValue = t调节点(2).x - t调节点(1).x
                  YFtext1(3).UpValue = t调节点(2).y - t调节点(1).y
                  '计算多节点中间位置()
                  
                  
            End Select
            合成元素数据()
            Picture2.Refresh
            YFList1.Refresh
         End If
      End If
      
      
   Else
      '旋转
      Dim bi As Single = pNMUD.iDelta * 3.1415926 / 180 '角度转弧度
      
      Dim i As Long
      If UBound(t调节点) > 1 Then
         If Left(t元素列表(i元素), 1) = "i" Then Return False '描绘文字 <i,填充色,线框色,线粗,折线拐角,尺寸,加粗,倾斜,下划线,删除线,x,y,长度(字体名和文字总长度),字体名,文字>
         Select Case Left(t元素列表(i元素), 1)
            Case "a", "f", "g", "h"
               '线条 <a,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x1,y1,x2,y2,....xn,yn>
               '贝塞尔曲线 <f,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,x1,y1,x2,y2,x3,y3,x4,y4...[xn,yn]>
               '曲线 <g,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,曲度,x1,y1,x2,y2,....xn,yn>
               '路径 <h,填充色,填充模式,闭合路径,折线拐角,线框色,线粗,起点线帽,终点线帽,终点箭头w,终点箭头h,箭头填充,起点箭头w,起点箭头h,n,x1,y1,x2,y2,x3,y3,x4,y4...[xn,yn]>
               Dim As Single nx = 9999, ny = 9999, mx = -99999, my = -99999
               
               For i = 1 To UBound(t调节点)
                  If t调节点(i).b <> 4 Then
                     Dim jd As Single = Atan2(t调节点(i).y - t调节点(0).Y, t调节点(i).x - t调节点(0).x) '角度
                     Dim bj As Single = sqr((t调节点(i).x - t调节点(0).x) ^ 2 + (t调节点(i).y - t调节点(0).Y) ^ 2) '半径
                     
                     t调节点(i).x    = t调节点(0).x + bj * Cos(jd + bi)
                     t调节点(i).y    = t调节点(0).y + bj * Sin(jd + bi)
                     t对象列表(i -1) = Int(t调节点(i).x) & "," & Int(t调节点(i).y)
                     t调节点(i).tx   = -99999
                     t调节点(i).ty   = -99999
                     If i对象 = i -1 Then
                        YFtext1(0).UpValue = t调节点(i).x
                        YFtext1(1).UpValue = t调节点(i).y
                     End If
                  End If
               Next
               合成元素数据()
               Picture2.Refresh
               YFList1.Refresh
            Case "b", "c", "d", "e"
                
         End Select
         
      End If
   End If
   
   Function = False '允许更改位置值。返回 TRUE 将不允许修改位置值
End Function

'[Form1.YFbunGroup3]事件 : 点击了某个按钮
'hWndForm  当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'nID       按钮号，鼠标点击了某个按钮，就是点击后释放鼠标时触发
Function Form1_YFbunGroup3_Command(hWndForm As hWnd, hWndControl As hWnd, nID As Long) As Long
   YFbunGroup3.ButtonState(i工具) = 0
   YFbunGroup3.ButtonState(nID)   = 10
   
   If nID Then
      If i工具 < Form1_YFbunGroup3_路径直线 Or i工具 > Form1_YFbunGroup3_路径椭圆 Or nID < Form1_YFbunGroup3_路径直线 Or nID > Form1_YFbunGroup3_路径椭圆 Then
         YFList2.ListIndex = -1
         Form1_YFList2_SelChange(0, 0, -1)
      End If
      If ColCur Then
         DestroyIcon ColCur
         ColCur = 0
      End If
      '创建光标
      Dim As Long CurW = 32, CurH = 32 ' GetSystemMetrics(SM_CXCURSOR) ,CurH= GetSystemMetrics(SM_CYCURSOR)
      Dim ngg As yGDI
      ngg.MemDC(CurW, CurH, 1)
      ngg.Cls &HFFFFFF
      ngg.Pen 2, 0
      ngg.DrawLine 0, 0, CurW / 2, 0
      ngg.DrawLine 0, 0, 0, CurH / 2
      ngg.GpDrawVectorIcon(2, 2, 30, 30, YFbunGroup3.ButtonIconStr(nID), "FF000000,FF000000")
      Dim As Long XORmaskCursor(CurW -1), ANDmaskCursor(CurH -1), x, y, cc
      For y = 0 To CurH -1
         For x = 0 To CurW -1
            cc = GetPixel(ngg.m_Dc, x, y) And &HFF
            If cc > 200 Then
               XORmaskCursor(y) = BitReset(XORmaskCursor(y), 31 - x)
               ANDmaskCursor(y) = BitSet(ANDmaskCursor(y), 31 - x)
            Else
               XORmaskCursor(y) = BitSet(XORmaskCursor(y), 31 - x)
               ANDmaskCursor(y) = BitSet(ANDmaskCursor(y), 31 - x)
            End If
         Next
         Dim bt As Byte Ptr = Cast(Any Ptr, @XORmaskCursor(y)), at As Byte
         at = bt[0] : bt[0] = bt[3] : bt[3] = at
         at = bt[1] : bt[1] = bt[2] : bt[2] = at
         bt = Cast(Any Ptr, @ANDmaskCursor(y))
         at = bt[0] : bt[0] = bt[3] : bt[3] = at
         at = bt[1] : bt[1] = bt[2] : bt[2] = at
      Next
      ColCur = CreateCursor(App.HINSTANCE, 0, 0, CurW, CurH, @ANDmaskCursor(0), @XORmaskCursor(0))
      Picture1.Refresh
   end if
   i工具    = nID
   Function = TRUE '  如果你处理了事件，就返回 Return TRUE ,控件就不进行默认处理了。
   
End Function

'[Form1.Command1]事件 : 单击
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_Command1_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)
   Form2.Show(hWndForm, True)
   
End Sub

'[Form1.Picture1]事件 : 按下鼠标右键
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
'MouseFlags  MK_CONTROL   MK_LBUTTON     MK_MBUTTON     MK_RBUTTON    MK_SHIFT     MK_XBUTTON1       MK_XBUTTON2
''           CTRL键按下   鼠标左键按下   鼠标中键按下   鼠标右键按下  SHIFT键按下  第一个X按钮按下   第二个X按钮按下
'检查什么键按下用  If (MouseFlags And MK_CONTROL)<>0 Then CTRL键按下
'xPos yPos   当前鼠标位置，相对于控件。就是在控件里的坐标。
Sub Form1_Picture1_WM_RButtonDown(hWndForm As hWnd, hWndControl As hWnd, MouseFlags As Long, xPos As Long, yPos As Long)
   Dim i As Long = YFList2.ListIndex
   PopupMenu1.Enabled(Form1_PopupMenu1_复制) = i > -1
   PopupMenu1.Enabled(Form1_PopupMenu1_剪切) = i > -1
   PopupMenu1.Enabled(Form1_PopupMenu1_删除) = i > -1
   
   PopupMenu1.PopupMenu
   
End Sub

'[Form1.Combo4]事件 : 列表框中更改当前选择时
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_Combo4_CBN_SelChange(hWndForm As hWnd, hWndControl As hWnd)
   If 代码修改中 Then Return
   合成元素数据()
   
End Sub

'[Form1.Combo5]事件 : 列表框中更改当前选择时
'hWndForm    当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
'hWndControl 当前控件的句柄(也是窗口句柄，如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 )
Sub Form1_Combo5_CBN_SelChange(hWndForm As hWnd, hWndControl As hWnd)
   If 代码修改中 Then Return
   合成元素数据()
   
End Sub

Function Form1_Picture1_Custom(hWndForm As hWnd, hWndControl As hWnd, wMsg As UInteger, wParam As wParam, lParam As lParam) As LResult
   Select Case wMsg
      Case WM_SETCURSOR
         If i工具 > 0 Then
            SetCursor(ColCur)
            Return -1
         End If
   End Select
   Function = FALSE ' 若不想系统继续处理此消息，则应返回 TRUE （俗称吃掉消息）。
End Function

'[Form1.Timer名称修改防抖]事件 : 定时器
'hWndForm  当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
''         本控件为功能控件，就是无窗口，无显示，只有功能。如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 
'wTimerID  定时器ID，区分不同定时器的编号
Sub Form1_Timer名称修改防抖_WM_Timer(hWndForm As hWnd, wTimerID As Long)
   Timer名称修改防抖.Enabled =False 
   文件被修改 = 1
   Form1.YFbunGroup5.ButtonState(Form1_YFbunGroup1_Button_保存) = 0
   Dim i As Long = YFList1.ListIndex
   If i = -1 Then Return
   Dim ti As Long = YFList1.ItemData(i)
   Dim As Long f = InStr(t图标列表(ti), "}")
   Dim ft As StringW = YFtext9.text
   YFList1.List(i) = ft
   Dim sc As String = wStrToUtf8(ft)
   If Len(sc) Then
      sc = YF_Replace(sc, "{", "")
      sc = YF_Replace(sc, "}", "")
      sc = "{" & sc & "}"
   End If
   If f Then t图标列表(ti) = sc & Mid(t图标列表(ti), f + 1) Else t图标列表(ti) = sc & t图标列表(i)

End Sub

'[Form1.Timer防抖]事件 : 定时器
'hWndForm  当前窗口的句柄(WIN系统用来识别窗口的一个编号，如果多开本窗口，必须 Me.hWndForm = hWndForm 后才可以执行后续操作本窗口的代码)
''         本控件为功能控件，就是无窗口，无显示，只有功能。如果多开本窗口，必须 Me.控件名.hWndForm = hWndForm 后才可以执行后续操作本控件的代码 
'wTimerID  定时器ID，区分不同定时器的编号
Sub Form1_Timer防抖_WM_Timer(hWndForm As hWnd, wTimerID As Long)
   Timer防抖.Enabled =False 
   创建恢复()
   t图标列表(i图标) = Trim(wStrToUtf8(YFtext2.Text))
   t图标显示(i图标) = t图标列表(i图标)
   加载图标(t图标列表(i图标), 1)
   Picture1.Refresh
   Form1.Picture2.Refresh
   YFList1.Refresh


End Sub































